#include <initializer_list>
struct Foo {
Foo( int x_, int y_) : x( x_) , y( y_) { }
int x;
int y;
} ;
struct Bar {
Bar( Foo first_, Foo second_) : first( first_) , second( second_) { }
Foo first;
Foo second;
} ;
#include <iostream>
int main( ) {
auto list1 = std:: initializer_list < int > { 1 , 2 } ;
Bar b = { list1, list1 } ;
std:: cout << b.first .x << ", " << b.first .y << ", " ;
std:: cout << b.second .x << ", " << b.second .y << std:: endl ;
// ^ Output: 1, 2, 3, 4
}
I2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+CgpzdHJ1Y3QgRm9vIHsKICAgIEZvbyhpbnQgeF8sIGludCB5XykgOiB4KHhfKSwgeSh5Xykge30KICAgIGludCB4OwogICAgaW50IHk7Cn07CgpzdHJ1Y3QgQmFyIHsKICAgIEJhcihGb28gZmlyc3RfLCBGb28gc2Vjb25kXykgOiBmaXJzdChmaXJzdF8pLCBzZWNvbmQoc2Vjb25kXykge30KICAgIEZvbyBmaXJzdDsKICAgIEZvbyBzZWNvbmQ7Cn07CgojaW5jbHVkZSA8aW9zdHJlYW0+CgppbnQgbWFpbigpIHsKICAgIGF1dG8gbGlzdDEgPSBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8aW50PnsgMSwgMiB9OyAgICAKICAgIEJhciBiID0geyBsaXN0MSwgbGlzdDEgfTsKICAgIHN0ZDo6Y291dCA8PCBiLmZpcnN0LnggPDwgIiwgIiA8PCBiLmZpcnN0LnkgPDwgIiwgIjsKICAgIHN0ZDo6Y291dCA8PCBiLnNlY29uZC54IDw8ICIsICIgPDwgYi5zZWNvbmQueSA8PCBzdGQ6OmVuZGw7CiAgICAvLyBeIE91dHB1dDogMSwgMiwgMywgNAp9
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:19:28: error: could not convert ‘{list1, list1}’ from ‘<brace-enclosed initializer list>’ to ‘Bar’
Bar b = { list1, list1 };
^
stdout