儘管我非常喜歡C++ 11中的新功能,但有時候我覺得我錯過了它的一些微妙之處。std ::數組初始化列表在初始化列表中初始化
初始化int數組工作正常,初始化Element2向量工作正常,但初始化Element2數組失敗。我認爲正確的語法應該是未註釋的行,但沒有任何初始化嘗試對我成功。
#include <array>
#include <vector>
class Element2
{
public:
Element2(unsigned int Input) {}
Element2(Element2 const &Other) {}
};
class Test
{
public:
Test(void) :
Array{{4, 5, 6}},
Array2{4, 5},
//Array3{4, 5, 6}
Array3{{4, 5, 6}}
//Array3{{4}, {5}, {6}}
//Array3{{{4}, {5}, {6}}}
//Array3{Element2{4}, Element2{5}, Element2{6}}
//Array3{{Element2{4}, Element2{5}, Element2{6}}}
//Array3{{{Element2{4}}, {Element2{5}}, {Element2{6}}}}
{}
private:
std::array<int, 3> Array;
std::vector<Element2> Array2;
std::array<Element2, 3> Array3;
};
int main(int argc, char **argv)
{
Test();
return 0;
}
我已經在MinGW下的g ++ 4.6.1和4.6.2上試過了。
我應該如何正確地去初始化這個數組?可能嗎?
我想這與初始化列表沒有太大的關係。編輯問題以使其更切合實際是否合適? – rendaw 2012-02-05 03:57:12