7
votes

C ++ 11 largement supporté?

Pour quelqu'un qui souhaite que son code C ++ soit portable sur les différents compilateurs C ++, est-il temps de commencer à utiliser C ++ 11, ou cela va-t-il être un moment avant que la nouvelle norme soit prise en charge par tous les compilateurs principaux (VC, GCC, Clang, Intel)?

En d'autres termes, quel est le statut de la prise en charge de C ++ 11 parmi les principaux compilateurs?


10 commentaires

Clang et G ++ ont un très bon soutien. Le point est que, plus souvent, les industries d'alimentation en infrastructure ne comptent généralement pas les compilateurs de la saignement parmi ses armes à feu.


wiki.apache.org/stdcxx/c%2b%2b0xcompilersupport


S'il vous plaît voir le C ++ 11 tag wiki ( Stackoverflow.com/tags/c%2b%2B11/Info)


Scott Meyer's a Une page avec des liens aussi chaque page de support compilateurs .


@Jessegood merci, je ne savais pas ça! Très utile, vous pouvez poster comme une réponse.


@Mat Merci pour le lien, mais la FAQ et la page liée concernent la norme comme C ++ 0x, ce qui me fait penser qu'ils pourraient être obsolètes.


Il est assez bien soutenu par les dernières versions des principaux compilateurs. Vous devez également envisager si vous souhaitez prendre en charge des versions plus anciennes de ces compilateurs.


La stabilité des nouvelles fonctionnalités est également une préoccupation - en particulier avec le temps tourné à long terme pour les corrections de bugs VC ++.


Ceci est aussi une dupe de Stackoverflow.com/q/7232878/46642 . Et, juste au cas où, «mais les réponses à ce sujet sont obsolètes» n'est pas une raison valable pour une autre DUPE (il y en a plus). Publiez une prime si vous êtes intéressé par une réponse mise à jour. Si vous pensez que cela ne fonctionne pas bien ... Eh bien, alors vous venez de préciser pourquoi cela est "trop ​​localisé".


C'était intéressant, dommage que cela ait été fermé. Au lieu de fermer systématiquement des questions plus fraîches, il devrait y avoir un moyen de gérer les personnes obsolètes et moins pertinentes ...


3 Réponses :


6
votes

Clang (mis à jour régulièrement):

http://clang.llvm.org/cxx_status.html

GCC 4.5 à 4.7 (mis à jour régulièrement):

http://gcc.gnu.org/projects/cxxx0x.html < / p>

Visual C ++ 10 et 11 (un peu vieux, mais le plus récent que j'ai trouvé):

http://blogs.msdn.com/ B / VCBLOG / Archive / 2011/09/12 / 10209291.aspx


0 commentaires

3
votes

Les versions récentes de tous les principaux compilateurs ont pris en charge les caractéristiques certains C ++ 11. Mais aucun compilateur n'a encore de support complet, et si vous souhaitez que votre code soit portable, vous devez également considérer que tout le monde n'utilise pas les dernières versions de leur compilateur.

La réponse est donc "cela dépend".

Il existe un certain nombre de fonctionnalités supportées par tous les compilateurs principaux. ( Auto , RVALUE REFS et Lambdas, par exemple, sont largement disponibles).

Il y a aussi beaucoup de fonctionnalités disponibles sur certains, mais pas tous, compilateurs.

Les liens postés par @kos devraient vous donner une bonne idée de l'endroit où chaque compilateur est à.

si vous pouvez / devrait commencer à utiliser C ++ 11 pourtant, c'est tout à fait à vous.


0 commentaires