我试图使用static_assert:
static_assert(std::numeric_limits<T>::max() <= std::numeric_limits<size_t>::max() , "T maximum should be smaller than size_t maximum" );
但是我在编译时遇到错误
预期的常量表达式
我有一个表达,所以问题是什么?
答案 0 :(得分:2)
对于没有constexpr
的编译器,使用相应的C库MAX
名称,例如来自SIZE_MAX
的{{1}}。
或者,对于<stdint.h>
等无符号类型,您只需使用size_t
。