Eclipse 4.6.1 avec NEON.1 CDT 9.1.0, g ++ 5.4.0Eclipse CDT NEON ne reconnaît pas C++ 11/14 contenu d'en-tête
Il ne reconnaît pas tous C++ 11/14 caractéristiques. Il reconnaît les mots-clés comme auto
et nullptr
. Il ne reconnaît cependant pas les choses provenant d'en-têtes qui dépendent des symboles corrects définis.
Par exemple lors de l'inclusion <memory>
il reconnaît les anciens symboles comme std::auto_ptr
pas connu comme std::shared_ptr
. Ces nouvelles fonctionnalités sont dans un #if __cplusplus >= 201103L
.
Je peux le faire fonctionner pour un projet eclipse standard en définissant l'option dialect mais j'en ai besoin pour travailler avec un projet basé sur autotools qui n'a pas de réglage de dialecte.
J'ai la compilation actuelle du programme en utilisant la variable automake AM_CXXFLAGS. Pour le faire fonctionner pour l'indexeur je suis allé en éclipse à Propriétés du projet> C/C++ Général> Préprocesseur Inclure les chemins, Macros
Puis à l'onglet fournisseurs et ajouté -std = C++ 14 option à la commande pour le CDT GCC intégré dans les paramètres du compilateur. J'ai également déplacé ce fournisseur en tête de liste. Sur l'onglet des entrées, vous pouvez voir la valeur réelle de la __cplusplus définir. Avant d'ajouter le commutateur -std = C++ 14 il était wel ci-dessous le 201103L requis après avoir ajouté l'interrupteur, il était bien au-dessus.