类模板参数的Static_assert



我可以执行以下操作来检查类模板整数参数是否为偶数吗?

template<int N>
struct S
{
     static_assert( N % 2 == 0, "fail" );
};

使用gcc 4.8.3进行编译,但我不确定这段代码是否违反c++ 11标准,以及它是否将与其他标准兼容的编译器一起工作。

使用static_assert的唯一真正要求是所使用的表达式必须是常量表达式(即值必须在编译时可确定),因此如果您试图使用直到运行时才知道的值,您将遇到问题。

所以只要你使用的值是编译时常量,你就应该没问题。

相关内容

  • 没有找到相关文章

最新更新