Visual Studio 2012 November CTP does provide us with support for initializer lists, even though standard library containers like vector<T> do not yet implement constructors that accept an initializer list. However, that doesn’t stop us writing code like this to make populating containers easy:
namespace musingstudio { template<typename Container> Container initialize( std::initializer_list<typename Container::value_type> items ) { return Container( items.begin(), items.end() ); } }
And call it like this:
auto evens = musingstudio::initialize<vector<int>>({2,4,6,8,10});
I like the way this reads “initialize vector of int( values )” – and it’s pretty efficient too, if your container supports move semantics (which the standard library containers do).
This is cool, using it right now 🙂
Pingback: Use std::initializer_list in Visual C++ Compiler November 2012 CTP | BlogoSfera