The C++ reference pages say that () is for value initialisation, {} is for value and aggregate and list initialisation. So, if I just want value initialisation, which one do
Herb Sutter seems to be making an argument in CppCon 2014 (39:25 into the talk) for using auto and brace initializers, like so:
auto x = MyType { initializers };
whenever you want to coerce the type, for left-to-right consistency in definitions:
auto x = getSomething()
auto x = MyType { blah }
auto x = "Hello, world."s
auto f { some; commands; } -> MyType
using auto f = [=]( { some; commands; } -> MyType
using AnotherType = SomeTemplate