c++11 静态断言
c++11 静态断言
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <vector> #include <map> void mytest() { bool flag = false; // 在程序运行阶段进行检测,如果条件为真,程序正常执行,如果为假,终止程序,提示错误 // 需要包含 assert.h 头文件,实现是一个宏,禁用断言可以使用 #define NDEBUG //assert(flag == true); // C++ 11新增了关键字static_assert,可用于在编译阶段对断言进行测试。 // 静态断言的好处: // 更早的报告错误,我们知道构建是早于运行的,更早的错误报告意味着开发成本的降低 // 减少运行时开销,静态断言是编译期检测的,减少了运行时开销 // 语法如下: static_assert(常量表达式,提示字符串) // 注意:只能是常量表达式,不能是变量 //该static_assert用来确保编译仅在32位的平台上进行,不支持64位的平台 static_assert(sizeof(void *) == 4, "64-bit code generation is not supported."); return; } int main() { mytest(); system("pause"); return 0; }