#include
struct A
{
A() { std::cout << \"(A::A)\"; }
};
struct B
{
B() { std::cout << \"(B::B)\"; }
};
struct C
{
templat
Why in first braced init list objects are created in right-to-left order?
No. It is left-to-right. Your compiler has bug which is why it is evaluating right-to-left. GCC (4.8) is known to have this bug. Do you use GCC?
Why parentheses in second case revert this order?
Same. Left to right. In this case, comma operator comes into picture, which evaluates operands left-to-right.