J'essaie de mettre à jour mon compilateur C ++ vers C ++ 11. J'ai cherché un peu et je suis arrivé à la conclusion que je dois utiliser le drapeau -std=c++0x
ou -std=gnu++0x
, mais je ne sais pas beaucoup de choses sur les drapeaux. Quelqu'un peut-il m'aider? (J'utilise Ubuntu 12.04.)
Voici l'erreur que j'obtiens du compilateur lorsque j'essaie d'utiliser une bibliothèque incluse dans C ++ 11 (c'est-à-dire un tableau):
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr = {2, 3, 5};
...
}
Ce fichier nécessite le support du compilateur et de la bibliothèque pour la prochaine norme ISO C ++, C ++ 0x. Cette prise en charge est actuellement expérimentale et doit être activée avec les options du compilateur -std = c ++ 0x ou -std = gnu ++ 0x.
-std=c++11
place. Peut-être que les deux sont autorisés, cependant.g++-4.6
par défaut (qui ne prend en charge que-std=c++0x
)g++
, par exempleg++ -std=c++0x _filename_ && ./a.out
.