我在一个类中声明并初始化了一个常量字符数组:
class grid {
const char test[11] = {'s', 'e', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
我的代码可以工作,但我一直收到编译器警告:
非静态数据成员初始化仅在C++11中可用
和
扩展的初始化列表仅在C++11中可用
我知道这不是一个问题,因为我正在编译为C++11标准,但我想知道我的代码中哪些部分是C++11之前的。
我希望有人能给我一些见解,并建议我如何使这段代码符合C++98的要求。
另外,按照要求,我的编译器命令:
> g++ -o test main.cpp
-std=c++11
无关。如果您已启用 C++11 模式,则不应出现此警告。C++03 仅允许在类内初始化常量整数静态数据成员。您正在使用 C++11 功能称为非静态数据成员初始化器。 - Praetorian