По какой-то причине я думал, что С++ 0x разрешил std::initializer_list
как аргумент функции для функций, которые ожидают типы, которые могут быть построены из таких, например std::vector
. Но, видимо, это не сработает. Это только мой компилятор, или это никогда не сработает? Это из-за потенциальных проблем с разрешением перегрузки?
#include <string>
#include <vector>
void function(std::vector<std::string> vec)
{
}
int main()
{
// ok
std::vector<std::string> vec {"hello", "world", "test"};
// error: could not convert '{"hello", "world", "test"}' to 'std::vector...'
function( {"hello", "world", "test"} );
}