C++ 11の新機能を楽しむことができますが、時には私はその微妙な点をいくつか見逃しているように感じることがあります。初期化リストのstd :: array initializerリストの初期化リスト
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