我可以执行以下操作来检查类模板整数参数是否为偶数:
template<int N>
struct S
{
static_assert( N % 2 == 0, "fail" );
};
可以使用gcc 4.8.3进行编译,但是我不确定该代码是否不违反C++ 11标准,以及是否可以与其他符合标准的编译器一起使用。
最佳答案
使用static_assert
的唯一真正要求是所使用的表达式必须是一个常量表达式(即该值必须在编译时是可确定的),因此,如果您尝试使用直到运行时才知道的值,就会遇到问题-时间。
因此,只要您使用的值是编译时常量,就可以了。
关于c++ - 类模板参数的static_assert,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24683755/