Comme vous l'avez constaté vous-même, la différence entre les deux options est l'activation ou non des extensions GNU qui violent/étendent le standard C++. Les extensions GNU C++ sont décrites ici . Vous pouvez également utiliser la plupart des extensions GNU C (décrites dans la section ici ) dans vos programmes C++. Il serait également utile de se renseigner sur le -Wpedantic
Option GCC ici .
Notez que certaines extensions peuvent encore être en vigueur lors de l'utilisation de l'option -std=c++11
pour autant qu'elles ne soient pas en contradiction avec la norme. Par exemple, lorsque j'utilise le compilateur MinGW, j'ai besoin des extensions pour que le système fonctionne. Boost.Lexical_Cast
. Mais, tant que vous n'utilisez aucune d'entre elles, il est préférable de s'en tenir au standard sans extensions pour une portabilité maximale. Cela peut s'avérer utile si vous êtes obligé de changer de compilateur.
7 votes
Le site
gnu
Certains font référence à des extensions, et si vous voulez écrire du code portable, vous devriez vous en tenir à une norme et éviter complètement les extensions.