Anche se mi piacciono molto le nuove funzionalità in C++ 11, a volte mi sento come se mi mancassero alcune delle sue sottigliezze.std :: inizializzazione elenco inizializzatore array nell'elenco di inizializzazione
L'inizializzazione dell'array int funziona correttamente, l'inizializzazione del vettore Element2 funziona correttamente, ma l'inizializzazione dell'array Element2 non riesce. Penso che la sintassi corretta dovrebbe essere la linea non commentata, ma nessuno dei tentativi di inizializzazione è riuscito per me.
#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;
}
Ho provato questo su g ++ 4.6.1 e 4.6.2 in MinGW.
Come devo procedere correttamente per l'inizializzazione di questo array? È possibile?
Immagino che questo non abbia molto a che fare con gli elenchi di inizializzazione. Sarebbe opportuno modificare la domanda per renderla più precisa? – rendaw