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

static assert c++ - constant expression error

我正在尝试使用 static_assert :

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

但我在编译时遇到错误

Expected constant expression

我确实有表情,请问有什么问题吗?

对于没有 constexpr 的编译器,使用适当的 C 库 MAX 名称,例如 <stdint.h>.

中的 SIZE_MAX

或者,对于 size_t 等无符号类型,您可以只使用 size_t(-1).

查看 (http://en.cppreference.com/w/cpp/types/climits) 列表。