кортежный вектор и 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.
Любой ответ будет оценен!