Programme de compilation en tant que c ++ 14 dans Sublime Text 3 par défaut

Je sais que nous pouvons comstackr le programme en C ++ en utilisant le compilateur g ++. Mais le compilateur g ++ utilise par défaut la version 98. Pour l’exécuter en C ++ 14, nous devons append -std=c++14 dans le terminal.

Sublime Text est considéré comme un éditeur précieux pour la programmation compétitive en raison de son poids léger et de ses fonctionnalités. Dans ces compétitions, le temps est important et le temps est donc perdu à copier dans un fichier texte puis à courir depuis le terminal. C ++ 14 comporte une riche bibliothèque et d’autres fonctionnalités importantes par rapport à 98. Ainsi, on souhaiterait pouvoir comstackr le code sur du texte sublime et en C ++ 14.

Mais comment puis-je être sûr que lorsque je comstack le code dans Sublime Text 3, il est compilé par défaut en C ++ 14?

Après quelques manipulations, je suis arrivé à la solution suivante:

  1. Accédez aux packages et extrayez C ++. Sublime-package
  2. Ouvrez C ++ Single File.sublime-build
  3. Changement

     "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\"" 

    à

     "shell_cmd": "g++ -std=c++14 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\"" 

    Ajout de -std=c++14 dans les versions et l’exécution

  4. Enregistrez-le et écrasez le paquet à l’origine dans Sublime Text 3

Est-ce la bonne façon de le faire? Il s’agit d’un fichier unique. Est-ce une source de préoccupation si je souhaite utiliser plusieurs fichiers?

Il est préférable de créer un nouveau système de compilation, voici comment:

Cliquez sur Tools -> Build System -> New Build System .

C’est ce que j’utilise (remarquez le drapeau -std=c++14 )

 { "cmd":["bash", "-c", "g++ -std=c++14 -Wall '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c, source.c++", "variants": [ { "name": "Run", "cmd":["bash", "-c", "g++ -std=c++14 '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"] } ] } 

(Je pense que vous pouvez simplement utiliser la ligne que vous avez déjà et l’enregistrer dans un nouveau fichier système.)

Maintenant, sauvegardez la nouvelle construction, sélectionnez-la dans Tools -> Build System .
Et maintenant, vous pouvez construire et exécuter avec CTRL + B

Habituellement, il est mauvais de modifier les fichiers par défaut. Créez simplement un nouveau système de construction. Pallet -> Build: New Build System, ajoutez vos modifications ici et enregistrez-les comme vous le souhaitez. Ensuite, lorsque vous souhaitez l’utiliser, sélectionnez simplement Build With: (nouveau nom du système de génération). Si vous souhaitez également l’option Build – Run, utilisez plutôt ce code:

 { "cmd": ["g++", "-std=c++14", "${file}", "-o", "${file_path}/${file_base_name}"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c, source.c++", "variants": [ { "name": "Run", "cmd":["bash", "-c", "g++ -std=c++1y '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"] } ] } 

La meilleure façon de modifier les fichiers par défaut est d’utiliser PackageResourceViewer .

Une fois installé, exécutez la commande PackageResourceViewer: Open Resource partir de la command palette . On vous montrera une liste de paquets dans lesquels vous pouvez naviguer pour sélectionner le fichier que vous souhaitez éditer.

Le fichier sélectionné sera ouvert dans un nouveau document et toute modification sera enregistrée dans un nouveau fichier situé dans Packages/PackageThatYouEdited/FileThatYouEdited.ext

L’avantage de cette méthode est que le fichier modifié dans Packages remplacera désormais le fichier d’origine qui réside dans le fichier sublime-package , mais que le fichier d’origine restra intact. Si vous choisissez de supprimer le fichier modifié, le fichier d’origine du sublime-package sera à nouveau actif.