кортежный вектор и initializer_list

Я попытался скомпилировать следующие фрагменты с gcc4.7

vector<pair<int,char> > vp = {{1,'a'},{2,'b'}};
//For pair vector, it works like a charm.

vector<tuple<int,double,char> > vt = {{1,0.1,'a'},{2,4.2,'b'}};

Однако для вектора кортежей компилятор жалуется:

ошибка: преобразование в & # x2018; std :: tuple & # x2019; из списка инициализатора будет использовать явный конструктор & # x2018; constexpr std :: tuple & lt; & gt; :: tuple (_UElements & amp; & amp; ...) [with _UElements = {int, double, char}; = пустота; _Elements = {int, double, char}] & # x2019;

Информация об ошибках, передаваемая компилятором, является для меня полной ошибкой, и я не знаю, как реализованы конструкторы кортежей, но я точно знаю, что они полностью согласны с равномерной инициализацией (например:tuple<int,float,char>{1,2.2,'X'}) поэтому мне интересно, является ли проблема, с которой я столкнулся, только TODO компилятора или это что-то, определенное стандартом C ++ 11.

Любой ответ будет оценен!

Ответы на вопрос(2)

Ваш ответ на вопрос