求助,关于C++的,跪求哪个大神给解释一下这几行代码啊?
时间:2011-12-26
来源:互联网
template <bool>
struct CompileAssert {
};
#undef COMPILE_ASSERT
#define COMPILE_ASSERT(expr, msg) \
typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
就这几行,我们老大写的,但是我看了很久也不知所云,跪求高手指点一下吧!
struct CompileAssert {
};
#undef COMPILE_ASSERT
#define COMPILE_ASSERT(expr, msg) \
typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
就这几行,我们老大写的,但是我看了很久也不知所云,跪求高手指点一下吧!
作者: wubi584464304 发布时间: 2011-12-26
取消宏定义 COMPILE_ASSERT,然后在重新定义它,行末的 \ 起续行的作用
作者: mougaidong 发布时间: 2011-12-26
首先 CompileAssert是一个模板结构体,只接受bool类型。
然后定义了一个宏功能用于编译时诊断。
typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
判断expr的值如果是false的话就会产生编译错误
试图将CompileAssert<bool>[-1] 定义一个为msg别名。
然后定义了一个宏功能用于编译时诊断。
typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
判断expr的值如果是false的话就会产生编译错误
试图将CompileAssert<bool>[-1] 定义一个为msg别名。
作者: vichal 发布时间: 2011-12-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28