aggregate-initialization

Разрешено ли это в стандарте: struct A { int a = 3; int b = 3; }; A a{0,1}; // ??? Является ли этот класс все еще агрегатным? clang принимает этот код, но gcc не принимает. ...

Допустим, у нас есть следующий код: #include <iostream> #include <string> struct A { A() {} A(const A&) { std::cout << "Copy" << std::endl; } A(A&&) { std::cout << "Move" << std::endl; } std::string s; }; struct B { A a; }; int main() { B{A()}; ...

C++0x собирается сделать следующий код и подобный код плохо сформированным, потому что он требует так называемого сужающее преобразование на double до int. int a[] = { 1.0 }; мне интересно, используется ли этот вид инициализации в реальном коде. Сколько кода будет нарушено этим изменением? Это много усили...