如何在类定义中初始化std :: array?

时间:2014-10-02 12:58:24

标签: c++ c++11

从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>'

1 个答案:

答案 0 :(得分:3)

您还需要一组大括号,这是非直观的。

std::array<float, 3> phis = {{1, 2, 3}};