从C ++ 11开始,可以在类定义中初始化成员变量:
class Foo {
int i = 3;
}
我知道我可以像这样初始化一个std :: array:
std::array<float, 3> phis = {1, 2, 3};
如何在类定义中执行此操作?以下代码给出了错误:
class Foo {
std::array<float, 3> phis = {1, 2, 3};
}
GCC 4.9.1:
error: array must be initialized with a brace-enclosed initializer
std::array<float, 3> phis = {1, 2, 3};
^ error: too many initializers for 'std::array<float, 3ul>'
答案 0 :(得分:3)
您还需要一组大括号,这是非直观的。
std::array<float, 3> phis = {{1, 2, 3}};