#include #include using namespace std; class A { public: A(initializer_list l) { // I } A(double d, string s, initializer_list l) { // II } A(int x, int y) { // III } }; main() { A a{3,4}, b(4,5); // a constructed from I, b from III A c{3.4,"hello",{1,2,3}}; // c from II (nested braces necessary) // STL uses them: vector x {1,2,3}; // x is 1,2,3 x.insert(x.end(),{4,5,6}); // x is now 1,2,3,4,5,6 x = {10,11,12}; // x is now 10,11,12 }