class C
{
public:
C() : arr({1,2,3}) //doesn't compile
{}
/*
C() : arr{1,2,3} //doesn't compile either
{}
*/
private:
int arr[3];
};
Je crois que la raison en est que les tableaux peuvent être initialisé qu'avec =
de la syntaxe, qui est:
int arr[3] = {1,3,4};
Questions
- Comment puis-je faire ce que je veux faire (c' est, initialiser un tableau dans un constructeur (pas d'affectation d'éléments dans le corps)). Est-il même possible?
- Le C++03 standard de dire quelque chose de spécial sur l'initialisation des agrégats (y compris les tableaux) dans ctor initialiseurs? Ou la invalidness le code ci-dessus est un corollaire de certaines autres règles?
- C++0x initialiseur de listes de résoudre le problème?
P. S. s'il vous Plaît ne pas mentionner les vecteurs, boost::tableaux, et leur supériorité à des tableaux, dont je suis bien conscient.