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).

