static assert c ++ - 常量表达式错误

时间:2015-02-22 09:57:30

标签: c++ static-assert

我试图使用static_assert:

static_assert(std::numeric_limits<T>::max() <= std::numeric_limits<size_t>::max() , "T maximum should be smaller than size_t maximum" );

但是我在编译时遇到错误

  

预期的常量表达式

我有一个表达,所以问题是什么?

1 个答案:

答案 0 :(得分:2)

对于没有constexpr的编译器,使用相应的C库MAX名称,例如来自SIZE_MAX的{​​{1}}。

或者,对于<stdint.h>等无符号类型,您只需使用size_t

请参阅(http://en.cppreference.com/w/cpp/types/climits)以获取列表。