Inicializando uma matriz de membro no inicializador do construtor
class C
{
public:
C() : arr({1,2,3}) //doesn't compile
{}
/*
C() : arr{1,2,3} //doesn't compile either
{}
*/
private:
int arr[3];
};
Eu acredito que a razão é que as matrizes podem ser inicializadas apenas com=
sintaxe, ou seja:
int arr[3] = {1,3,4};
QuestõesComo posso fazer o que eu quero fazer (ou seja,inicializar uma matriz em um construtor (não atribuindo elementos no corpo)). Isso é possível?O padrão C ++ 03 diz algo especial sobre a inicialização de agregados (incluindo matrizes) em inicializadores de ctor? Ou a invalidez do código acima é um corolário de outras regras?As listas de inicializadores C ++ 0x resolvem o problema?P.S. Por favor, não mencione vetores, boost :: matrizes e sua superioridade em relação às matrizes, das quais eu estou ciente.