кортежный вектор и initializer_list
Я попытался скомпилировать следующие фрагменты с gcc4.7
vector vp = {{1,'a'},{2,'b'}};
//For pair vector, it works like a charm.
vector vt = {{1,0.1,'a'},{2,4.2,'b'}};
Однако для вектора кортежей компилятор жалуется:
ошибка: преобразование в ‘станд :: кортеж» из списка инициализатора будет использовать явный конструктор ‘constexpr std :: tuple < >:: кортежей (_UElements && ...) [с _UElements = {int, double, char}; = пустота; _Elements = {int, double, char}] ’
Информация об ошибках, передаваемая компилятором, для меня совершенно бессмысленна, и я понятия не имею, как реализованы конструкторы кортежей, но я знаю, что они 'все в порядке с равномерной инициализацией (например:tuple{1,2.2,'X'}
), поэтому мне интересно, если проблема, с которой я столкнулся, это только TODO компилятора илиЧто-то определенное стандартом C ++ 11.
Любой ответ будет оценен!