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!