在类定义中,对于定义一个声明为const (而不是内联或constexpr)的文本类型的静态数据成员,constexpr有一个问题:struct S static int constS::我没有被宣布为警员,因此(如果我没有弄错) C++17 10.1.5 p1不适用:
用constexpr说明符声明的函数或静态数据成员是隐式的内联函数
为什么下面的最小示例不使用c++11或c++14编译,而是用c++17和c++2a编译#include <limits> // does not work in c++11 (constexpr introduced) nor c++14:
// works if c+auto& elem : classy.c