相关疑难解决方法(0)

为什么std :: array :: size不是静态的?

大小std::array在编译时已知,但size成员函数不是静态的.有什么理由吗?在没有实例化对象的情况下不能计算大小有点不方便.(嗯,我知道std::tuple_size专业化,但它不适用于派生自的类std::array.)

c++ stl c++11

30
推荐指数
3
解决办法
3666
查看次数

为什么C++ numeric_limits <enum_type> :: max()== 0?

这里有一些代码可能会起作用:

#include <cassert>
#include <limits>

enum test { A = 1 };

int main()
{
    int max = std::numeric_limits<test>::max();
    assert(max > 0);
}
Run Code Online (Sandbox Code Playgroud)

但它在Linux上的GCC(4.6.2)和clang(2.9)都失败了:枚举类型的max()实际上是零!即使您使用C++ 11枚举类型说明符来明确说明您希望枚举具有哪种类型,这仍然是正确的.

为什么是这样?至于C++ 11的行为,它是否被明确要求?我在N2347中没有提到它,这是关于强类型枚举的论文.

c++ enums numeric-limits c++11 strongly-typed-enum

12
推荐指数
1
解决办法
6060
查看次数

标签 统计

c++ ×2

c++11 ×2

enums ×1

numeric-limits ×1

stl ×1

strongly-typed-enum ×1