Posted on 2013-01-24 10:26
魏尚堂 阅读(664)
评论(0) 编辑 收藏 引用
thinking in c++ 有下面的例子,不太理解为什么这个宏中的条件表达式在编译时就执行了,在此作个记号
// A simple, compile-time assertion facility
#define STATIC_ASSERT(x) \
do { typedef int a[(x) ? 1 : -1]; } while(0)
int main()
{
STATIC_ASSERT(sizeof(int) <= sizeof(long)); // Passes
STATIC_ASSERT(sizeof(double) <= sizeof(int)); // Fails
return 0;
}