2017-09-02 6 views
-3

dans codeblocks Il n'y a pas d'option C++ 17 dans les options Build ou Compiler, seulement C++ 14 comment puis-je l'activer dans les blocs de code pour que les deux codent les outils et le compilateur le supportent?Comment activer C++ 17 Support dans les blocs de code

+0

passe 'std = C++ 17' en tant qu'option au compilateur (si vous utilisez clang ou gcc). –

+0

Pourquoi avez-vous besoin de C++ 17 spécifiquement? Tu ne peux pas utiliser C++ 14 et attendre quelques années? –

+0

@Basile Starynkevitch im travaille sur un projet que la nouvelle librairie de système de fichiers de C++ 17 est vraiment nécessaire pour cela –

Répondre

5

Code::Blocks est pas un compilateur (mais certains source code editor glorifié, parfois se faisant appeler IDE s, qui gère un compilateur externe).

Vous avez besoin d'un C++ 17 compilateur (et une fois que vous avez un vous pouvez configurer votre IDE ou éditeur pour l'utiliser avec les appropriées options). Essayez la toute dernière version de GCC (au moins GCC 7, et peut-être attendre GCC 8) ou Clang (attendre Clang5) et pass it l'option -std=c++17

Notez que C++17 est la norme C++ prévu pour être publié d'ici la fin de 2017. Vous devrez peut-être attendre un peu (peut-être un an ou deux) pour que les compilateurs et les implémentations de la bibliothèque standard l'implémentent correctement et complètement.

Par conséquent, je ne recommande pas d'utiliser les fonctionnalités C++ 17 sur un projet qui sortira bientôt (fin 2017), puisque vous développez des fondations de qualité β. Cependant, si vous travaillez sur un grand projet qui sera publié en 2019, vous risquez de parier que les fonctionnalités de C++ 17 que vous utilisez deviendront matures à ce moment-là. En ce qui concerne les fonctions de bibliothèques standard (telles que std::filesystem), vous trouverez facilement des équivalents approximatifs (par exemple dans les API natives OS ou POSIX, dans Boost, dans Qt, dans POCO, ...) qui devraient être raisonnablement faciles à porter une fois Les implémentations C++ 17 sont communes.

(je recommande d'utiliser votre compilateur sur la ligne de commande, ou en utilisant make, ninja, ou un autre système build automation exécutant des commandes du compilateur, les détails peuvent être le système d'exploitation et le compilateur spécifique.)

+1

S'il vous plaît recommander * n'importe quoi * à côté de 'make'. Un système de construction comme CMake, qui est multi-plateforme serait une bonne recommandation. – tambre

+0

'cmake' génère' Makefile's –

+0

Bien sûr, c'est une chose qu'il peut générer. De manière réaliste, vous ne voudriez plus générer de fichiers Makefile, mais plutôt des fichiers Ninja, car ils sont supérieurs à tous égards. Vous pouvez également générer des fichiers de projet pour de nombreux IDE différents. Il y a quelque chose qui convient à chaque plateforme et à chaque goût. – tambre