Хотя мне очень нравятся новые функции в C ++ 11, иногда мне кажется, что мне не хватает некоторых его тонкостей.
Инициализация массива 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;
}
Я пробовал это на g ++ 4.6.1 и 4.6.2 под MinGW.*
Как правильно выполнить инициализацию этого массива?Возможно ли это?