Understanding uniform initialization
Brace-initialization is a uniform method for initializing data in C++11. For this reason, it is also called uniform initialization. It is arguably one of the most important features from C++11 that developers should understand and use. It removes previous distinctions between initializing fundamental types, aggregate and non-aggregate types, and arrays and standard containers.
Getting ready
For continuing with this recipe, you need to be familiar with direct initialization that initializes an object from an explicit set of constructor arguments and copy initialization that initializes an object from another object. The following is a simple example of both types of initialization, but for further details, you should see additional resources:
std::string s1("test"); // direct initialization std::string s2 = "test"; // copy initialization
How to do it...
To uniformly initialize objects regardless of their type, use the brace-initialization form ...