Название: Инициализация структуры значениями по умолчанию. Отправлено: rdgtest1 от Февраль 12, 2015, 00:43 Подскажите, что я делаю не так?
Есть код: struct A { int x; int y; }; struct B { int x=-1; int y=-2; }; int main(int argc, char *argv[]) { A a={1,2}; // [1] B b={1,2}; // [2] return 0; } В случае [1] ошибки нет, в случае [2] - ошибка: ошибка: could not convert '{1, 2}' from '<brace-enclosed initializer list>' to 'B' B b={1,2}; ^ Поддержка С++11 включена. Название: Re: Инициализация структуры значениями по умолчанию. Отправлено: torwig от Февраль 12, 2015, 09:50 В 5.3 (GCC 4.8.2) ругается.
В 5.4 (студия 2013) тоже ругается. Видел на stackoverflow что работает в GCC 5.0, но проверить не могу. Название: Re: Инициализация структуры значениями по умолчанию. Отправлено: Igors от Февраль 12, 2015, 11:56 До С++ 11 руки доходят пока редко, но и без него
Код Просто "так нельзя" Название: Re: Инициализация структуры значениями по умолчанию. Отправлено: ViTech от Февраль 12, 2015, 12:23 Гуглите "c++11 initializer list constructor". И ещё "c++ pod initialization" пригодится.
Название: Re: Инициализация структуры значениями по умолчанию. Отправлено: _Bers от Февраль 12, 2015, 16:33 Подскажите, что я делаю не так? Инициализация в сишном стиле не работает для классов, у которых задействованы списки инициализации (присутствуют явно, либо объявлены конструкторы) |