运行时断言大家都用过,但如果想当某个条件不满足时在编译时就让程序编译不通过,即编译时断言是什么样子的呢。可参考如下:
/* Force a compilation error if condition is true */
#ifdef WIN32
#define BUILD_BUG_ON(e) {typedef char __static_assert_t[!(e)];}
#else
#define BUILD_BUG_ON(e) ((void)sizeof(char[1 - 2*!!(e)]))
#endif
原文:http://blog.csdn.net/lkkey80/article/details/24529739