In C++ 11, The new universal initialization syntax can also be used to call a normal constructor (that doesn\'t take a initializer_list parameter). While by looking it is not ba
The real problem is that the API changed.
If the constructor was
Foo(int size, int value);
and you used
Foo foo(10, 2);
and the API would have been changed to
Foo(int value, int size);
you would have the same problem.