C++ vecteur de tableaux

Pourquoi ce travail:

std::pair<int, int> p = {1,2};
std::vector<std::pair<int, int>> vp = { {1,2}, {3,4} };

Mais cela ne veut pas?

std::array<int, 2> a = {1,2}; //still ok
std::vector<std::array<int, 2>> va = { {1,2}, {3,4} };

À l'aide de g++ 4.5.1 avec -std=c++0x, la deuxième ligne échoue avec:

erreur: impossible de convertir ‘{{1, 2}, {3, 4}}’ à ‘std::vector<std::array<int, 2u> >’

Grâce

  • pouvez-vous préciser "échec"? (comme donner à votre compilateur de l'erreur?)
  • Quel système d'exploitation? Peut-être un bug du compilateur
  • plus de détails ajoutés, merci!
  • Je suis en train de me douter que gcc 4.5.1 n'est pas entièrement conforme sur ce point. Malheureusement, je ne sais pas en ligne compilateur qui pourrait aider ici (ideone utilise 4.5.1).
InformationsquelleAutor andreabedini | 2011-05-18