re: 直接的VS 2005 远程调试 溪流 2011-04-06 16:39
学习了
1、打包人员不该偷懒,他们应该知道完整的精确的文件清单,而不仅仅是“某个目录下的所有文件”
2、还是没有看出来把solution单独藏在一个目录的用意。
个人非常讨厌什么 bin,source,solution,。。。
你要么就纯粹自己搞,bin、source 都可以,就别 solution、project 了,最后自己写脚本
要么就用 solution、project,目录就大体上按默认的,一个project一个目录,
既用 solution、project,又独立搞一套目录体系,然后修改一大堆纯粹关于目录的配置参数,何必呢
仅仅以快或慢来决定用哪个我觉得不好
这两个函数的语义是不同的,要看上下文中你要操作的究竟是字符串还是普通内存。就算没法区分这一点,快慢也并非唯一标准,可能还有一些因素是重要的。
(抱歉,最近有点排斥“唯性能主义”。)
re: 失足于shared_ptr 溪流 2011-04-02 09:53
返回的不是临时对象的引用。
之所以 warining,是因为 m_pB 会随着 C 对象的析构而消亡,此时,之前有这个返回的引用就成了孤魂野鬼了。m_pB 在类外的地位就是一个局部变量。
re: 支持不同类型的 min 函数 溪流 2011-04-02 09:40
@flyinghearts
是的,应该显式转换,但是我必须知道原始返回类型后,才能考虑如何转换得到的结果。当我写下min(1LL, 2.0f) 的时候,我该认为返回类型是什么呢?或者是你假定不允许写下min(1LL, 2.0f)?请注意,当写下“min(1LL, 2.0f)”的时候,我并不了解min内部做了什么,我只是认为在比较他们的大小,不会猜到min里面会进行类型转换,因此不会写成“min((float)1LL, 2.0f)”或者“min(1LL, (long long)2.0f)”。
re: 支持不同类型的 min 函数 溪流 2011-04-01 09:34
对内建类型来说,sizeof 谁大就转到谁,也不是最合理的
比如int->double,我认为应该可以转换;而float->long long呢?貌似应该不认为可转换吧
re: 不对称边界编码风格 溪流 2011-03-31 17:40
嗯,支持左闭右开区间
@空明流转
我现在倒是有了个不太完美的解法:
// 判断 T 到 U 的转换是否存在
template <typename T, typename U>
class Conversion
{
private:
typedef char Small;
class Big { char XXX[2]; };
static Small Test(U);
static Big Test(...);
static T MakeT();
public:
enum
{
Exists = (sizeof(Test(MakeT())) == sizeof(Small)),
};
};
// 以上对内置类型的判断还是不够给力,
// 比如给出 T = int,U = double,它认为可转换;反过来,它还是认为可转换,只是多了个 warning 而已。
// 所幸,这些内置类型是有限的,我们可以采用人肉的方法,两两组合,分别给出偏特化版本。
// 简洁起见,仅列出 int 和 double 两个。
template <>
class Conversion<int, double>
{
public:
enum
{
Exists = true,
};
};
template <>
class Conversion<double, int>
{
public:
enum
{
Exists = false,
};
};
template <bool Condition, typename TypeIfTrue, typename TypeIfFalse>
struct Select
{
typedef TypeIfFalse Type;
};
template <typename TypeIfTrue, typename TypeIfFalse>
struct Select<true, TypeIfTrue, TypeIfFalse>
{
typedef TypeIfTrue Type;
};
struct NullType;
template <typename T, typename U>
struct CommonType
{
typedef typename Select<Conversion<T, U>::Exists,
U,
typename Select<Conversion<U, T>::Exists,
T,
NullType>::Type
>::Type Type;
};
template <typename T1, typename T2>
typename CommonType<T1, T2>::Type Min(T1 t1, T2 t2)
{
return (t1 < t2 ? t1 : t2);
}
int main()
{
int a = 0;
double b = 1;
CommonType<int, double>::Type m1 = Min(a, b);
CommonType<double, int>::Type m2 = Min(a, b);
int m3 = Min(a, b);
double m4 = Min(a, b);
return 0;
}
只是。。。太人肉了。。。
@周星星
不一定要 lambda 啊,单单一个普通函数就可以了,就像我原文里写的那样
@gbb21
这还没到运行时啊,模板函数特化的时候就知道了啊
@陈梓瀚(vczh)
比如 T1 = int, T2 = double,我期望返回类型是 double
@so
我不需要参数的数值大小,只需要知道类型信息啊,编译期可以知道
@OwnWaterloo
你也认为它多管闲事了?!好~哈哈!
re: 彻底放弃CN域名 溪流 2011-03-28 09:19
可是现在,当你访问慢的时候,被墙的时候,你会觉得不仅仅被鱼肉。。。
re: 坦克大战 曾经幼稚的代码 溪流 2011-03-19 12:09
@coreBugZJ
仰慕会写Win32游戏的
@volnet
看到这哥们的回复,我又看了下自己当时的回复,一开始还真有点不知道当时想表达什么。后来仔细看了下,应该是这么个意思吧:你说 IsWOW64 不能用于检测系统是32位还是64位的,原因是64位程序调用IsWOW64得到的结果不是预期的。我对这个因果推理的逻辑表示费解。既然要检测系统是32位还是64位的,程序本身必须是32位的,64位程序自然只能运行在64位系统下不能运行在32位系统下,所以对64位程序来说,是无所谓“检测”操作系统是不是32位的。IsWOW64确实可以让32位程序检查到操作系统到底是32位还是64位,已经充分地支持了“IsWOW64 可以用于检测系统是32位还是64位的”。。。。好绕,不知道我表达清楚了没有。所以,能不能拿64位程序调用 IsWOW64 的结果说事。
re: 坦克大战 曾经幼稚的代码 溪流 2011-03-18 18:54
@coreBugZJ
不贴了,偶得太弱智了,还是DOS版的
re: 坦克大战 曾经幼稚的代码 溪流 2011-03-18 12:44
呃。。。好怀旧啊。。。搞得哥也想贴坦克
re: 如何书写权威的程序库头文件 溪流 2011-03-18 09:29
哈哈
re: 学习下 WTL 的 thunk 溪流 2011-03-17 23:51
re: 学习下 WTL 的 thunk 溪流 2011-03-17 23:11
@OwnWaterloo
又看了一些人对回调函数的理解,觉得你在这个问题上如此激烈的反应是必要的,太多人认为function之类的玩意儿就能解决回调函数少参数的问题了,甚至没意识到这个问题是什么问题。。。
re: 稚嫩版垃圾收集器 之 工作机制 溪流 2011-03-17 22:26
路过,学习~
@dayn9
不要装,好吗?有什么话说出来,大家都可以受教~
@C++爱好者
呵呵。重新回顾了上面这么多纠结的提法(块啊、字节流啊、二进制格式啊、struct啊,char啊),再看到你说明白话,顿感轻松。块也好、二进制格式也好、struct也好,不就是一堆字节么。。。
re: 如何写出高质量的函数 溪流 2011-03-10 10:47
项目里只要是带上业务逻辑处理的,就找不到高质量的函数。。。。
@fixdot
对,当时也是这样的问题。也是原因不明。可是既然原因不明,那么作为论据其实有问题的。如果这两个函数确实有引用计数的,那么应该提倡用时CoInitialize,用完马上CoUninitialize。除非能够说出“一个进程里最好只调用一次”的道理。
@OwnWaterloo
在足够牛b的机器上,不见得新版本比旧版本慢啊
@Carnegieer
Email: kejinjin (at) gmail.com
re: 也谈谈GUI框架 溪流 2011-02-28 23:10
@zdhsoft
谢谢推荐,抽空一定看看
re: 孟岩blog理解矩阵一、二, 三 溪流 2011-02-22 20:30
要是大一能看到有这样高度的解释就好了,可惜那些教授们根本不去钻研教学方法,不知道怎么讲大家才能理解,,,说不定他们自己也不一定理解,或者不一定理解自己是怎么理解的
re: 有时,你真的太自信了 溪流 2011-02-22 16:49
@by
就算有这样的需求,也应该在另一个地方写专用工具来处理源代码或者处理二进制文件,而不应该在源代码中丢下这些不三不四的东西让别人费解。写这样的代码不就是为了炫耀一下“我懂机器码”么?这没什么值得炫耀的。
re: 有时,你真的太自信了 溪流 2011-02-22 13:09
@by
体现的是折腾,不是功力,谢谢。
除非你是学院派的,不在工程前线呆。
re: 有时,你真的太自信了 溪流 2011-02-21 12:45
话题不错,例子不好,支持楼上
re: 一个大整数类的实现 溪流 2011-02-16 00:40
@foxriver
好的,谢谢分享,有空我得想办法改进下~
re: 也谈谈GUI框架 溪流 2011-02-16 00:40
@abeng
@小龙红
你们俩都有DirectUI倾向。。。就是因为不想要Windows来管理吗?想了解下,Windows管理方式的那些方面值得我们抛弃它?
re: 也谈谈GUI框架 溪流 2011-02-16 00:38
@欲三更
谢谢你的分享~
控件工作量确实很多啊,标准的,自己的,才做了一个半~突然又有点不想解析 WPARAM LPARAM 了。。。
re: 一个大整数类的实现 溪流 2011-02-11 09:20
@foxriver
谢谢告知!
re: 再次批判 裘宗燕 溪流 2011-01-31 13:31
他的书没看过,仅仅看了上面有人贴出的网址。虽说看上去态度不错,但是有些词语偏偏不用大家约定俗成的,自搞一套,这样不好,,除非他真的能创造出一个流派。
@陈梓瀚(vczh)
@OwnWaterloo
一直用 Window Live Writer 写~
@廷
咱换个位置多好,呵呵。说不定我也喜欢数学的,只是在读数学的时候很不喜欢。
@gbb21
我没有认识的在校的学妹了,进不了校上不了98了,求vpn~!
@OwnWaterloo
像是……带版本控制的wiki?