一、 static_assert
C++自C++11起支持static_assert编译时断言,
static_assert ( bool_constexpr , message ) (C++11 起)
static_assert ( bool_constexpr ) (C++17 起)
C++17 起 message 可省略。
二、 自己实现
若使用的编译器不支持C++11(经测试VS2010已经支持static_assert),可以使用如下代码来实现:
#define RTC_COMPILE_ASSERT(expression) switch (0) {case 0: case expression:;}
使用方法:
RTC_COMPILE_ASSERT(1 != 1);