Я попытался скомпилировать следующие фрагменты с 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'}};
Однако для вектора кортежей компилятор жалуется:
Ошибка: преобразование в 'std:: tuple из списка инициализаторов будет использовать явный конструктор' constexpr std:: tuple < > :: tuple (_UEements & &...) [с _UElements = {int, double, char}; = void; _Elements = {int, double, char}]
Информация об ошибке, которую проливает компилятор, является для меня полной тарабарщиной, и я понятия не имею, как были реализованы конструкторы кортежа, но я знаю, что они полностью в порядке с единой инициализацией (например: tuple<int,float,char>{1,2.2,'X'}
), поэтому, Мне интересно, является ли проблема, с которой я столкнулся, только TODO компилятора или что-то определенное стандартом С++ 11.
Любой ответ будет оценен!