Инициализация массива-члена в инициализаторе конструктора

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

Я считаю, что причина в том, что массивы могут быть инициализированы только с= синтаксис, то есть:

int arr[3] = {1,3,4};
ВопросыКак я могу делать то, что хочу (то естьинициализировать массив в конструкторе (без присваивания элементов в теле)). Это вообще возможно?Говорит ли стандарт C ++ 03 что-либо особенное об инициализации агрегатов (включая массивы) в инициализаторах ctor? Или недействительность приведенного выше кода является следствием некоторых других правил?Решают ли списки инициализаторов C ++ 0x проблему?

Постскриптум Пожалуйста, не упоминайте векторы, boost :: arrays и их превосходство над массивами, о которых я хорошо знаю.

Ответы на вопрос(6)

Ваш ответ на вопрос