Inicializando una matriz de miembros en el inicializador de constructor

class C 
{
public:
 C() : arr({1,2,3}) //doesn't compile
{}
    /*
    C() : arr{1,2,3} //doesn't compile either
{}
    */
private:
 int arr[3];
};

Creo que la razón es que las matrices solo se pueden inicializar con= sintaxis, es decir:

int arr[3] = {1,3,4};
Preguntas¿Cómo puedo hacer lo que quiero hacer?inicializar una matriz en un constructor (sin asignar elementos en el cuerpo)). ¿Es posible?¿El estándar C ++ 03 dice algo especial sobre la inicialización de agregados (incluidas las matrices) en los inicializadores de ctor? ¿O la invalidez del código anterior es un corolario de algunas otras reglas?¿Las listas de inicializador de C ++ 0x resuelven el problema?

PD Por favor, no mencione vectores, boost :: arrays y su superioridad a los arrays, de lo que soy muy consciente.