Aunque disfruto mucho de las nuevas funciones en C++ 11, a veces siento que me faltan algunas de sus sutilezas.std :: Inicialización de la lista de inicializadores de array en la lista de inicialización
La inicialización de la matriz int funciona bien, la inicialización del vector Element2 funciona bien, pero la inicialización de la matriz Element2 falla. Creo que la sintaxis correcta debería ser la línea no comentada, pero ninguno de los intentos de inicialización me ha salido bien.
#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;
}
He intentado esto en g ++ 4.6.1 y 4.6.2 en MinGW.
¿Cómo debo proceder para inicializar esta matriz? ¿Es posible?
Supongo que esto no tiene mucho que ver con las listas de inicialización. ¿Sería apropiado editar la pregunta para que sea más acertada? – rendaw