wektor krotki i lista inicjalizująca

Próbowałem skompilować następujące fragmenty z 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'}};

Jednak w przypadku wektora krotek kompilator skarży się:

błąd: konwersja do „std :: tuple” z listy inicjalizacyjnej używałaby jawnego konstruktora „constexpr std :: tuple <> :: tuple (_UElements && ...) [z _UElements = {int, double, char}; = nieważne; _Elements = {int, double, char}] ’

Informacje o błędzie rozlane przez kompilator są dla mnie kompletnym bełkotem i nie mam pojęcia, w jaki sposób zaimplementowano konstruktory krotki, ale wiem, że są całkowicie w porządku z jednolitą inicjalizacją (np .:tuple<int,float,char>{1,2.2,'X'}), dlatego zastanawiam się, czy napotkany problem jest tylko TODO kompilatora lub jest czymś zdefiniowanym przez standard C ++ 11.

Każda odpowiedź zostanie doceniona!

questionAnswers(2)

yourAnswerToTheQuestion