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
To continue with this recipe, you need to be familiar with direct initialization, which initializes an object from an explicit set of constructor arguments, and copy initialization, which initializes an object from another object. The following is a simple example of both types of initialization:
std::string s1("test"); // direct initialization
std::string s2 = "test"; // copy initialization
With these in mind, let's explore how to perform uniform initialization.
How to do it...
To uniformly...