1
由於C++ 11,可以在類定義中初始化成員變量:如何在類定義中初始化std :: array?
class Foo {
int i = 3;
}
我知道我可以初始化的std ::數組是這樣的:
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>'
這似乎是訣竅,非常感謝! – 2014-10-02 13:02:25
這並不能解釋爲什麼你可以說'std :: array phis = {1,2,3};'在類定義之外。我也會期待大括號在這裏適用(但是我通常對這個問題是錯誤的)。 –
juanchopanza
2014-10-02 13:09:26
@juanchopanza我認爲就標準而言您是正確的,請參閱[本主題](http:/ /stackoverflow.com/questions/8192185/using-stdarray-with-initialization-lists)。你*應該*能夠使用一套大括號,這是正在解決的GCC問題(AFAIK) – CoryKramer 2014-10-02 13:12:52