web-dev-qa-db-fra.com

Modifications du formateur automatique>> à >>

J'ai un problème avec l'extension C++ de VScode. Chaque fois que je définis une matrice composée de vecteurs comme vector<vector<int> > et utiliser le formateur automatique, il change le code en vector<vector<int>> ce qui entraîne une erreur de compilation.

Y a-t-il une solution à cela?

25
ErebosM

L'extension VSCode C++ utilise le format clang pour formater le document. Si vous êtes coincé avec un ancien compilateur qui ne prend pas en charge C++ 11, ajoutez simplement un fichier .clang-format dans votre espace de travail avec la ligne suivante :

Standard : Cpp03

Pour plus d'options de formatage, reportez-vous au lien suivant: https://clang.llvm.org/docs/ClangFormatStyleOptions.html

41
Nishant Singh

L'erreur du compilateur est que >> est interprété comme l'opérateur de décalage droit au lieu de deux délimiteurs de liste d'arguments de modèle consécutifs. Avant C++ 11, c'était ainsi que le langage exigeait que l'analyseur fonctionne. Cependant, en C++ 11, une exception a été ajoutée pour éviter cela. Voir cette réponse pour plus d'informations.

La meilleure solution serait de mettre à niveau votre compilateur vers C++ 11 ou une version ultérieure.

28
Max Langhof