6
votes

Pourquoi Visual Studio 2008 met-il en surbrillance interne comme mot-clé en code C ++?

Je porte sur VC ++ 7 codeBase à VC ++ 9. Étonnamment Visual Studio 2008 met en évidence interne comme mot-clé en code C ++ mais on dirait qu'il n'est pas vraiment traité comme tel.

Qu'est-ce que c'est - un bogue dans VS, un paramètre d'environnement que je n'ai pas encore trouvé, ni un signe que je ne serai plus autorisé à utiliser interne comme identifiant régulier dans une prochaine version à venir ? Quel est mon meilleur mouvement dans cette situation?


0 commentaires

3 Réponses :


7
votes

Je ne suis pas sûr, mais je pense que le spécificateur interne peut être utilisé dans des projets C ++ / CLI. Donc, comme il n'ya qu'une différence d'un projet de projet entre un projet non C ++ / CLI et un projet C ++ / CLI, il pourrait donc s'agir de mettre en évidence à cause de cette raison.

[EDIT] Il suffit de vérifier, interne est un mot-clé en C ++ / CLI et génère une IL similaire à celle générée par un projet C #. Donc, ma pensée originale semble juste. Il semble être un un analyseur pour toutes les saveurs de C ++ de Microsoft.


1 commentaires

Je ne pense pas que ce n'est pas un "analyseur pour toutes les saveurs de C", mais certains des mécanismes de .NET qui n'étaient pas dans Old C ++ sont introduits en C ++ pour .NET, et pour des raisons évidentes, elles sont la même sémantique que c #.



3
votes

Le problème est que l'analyseur utilisé pour la surbrillance n'est pas l'un des analyseurs réels C ++. "L'un des", car VC ++, C ++ / ZA et C ++ / CLI sont trois dialectes avec différents analyses. La jolie imprimante vs utilise un analyseur commun qui ne comprend pas toujours bien. Par exemple. Il possède un seul ensemble de mots-clés, il suppose donc toujours "interne" est un mot clé.


0 commentaires

5
votes

Ignorez-le. Le "problème" est juste que toutes les parties de Visual Studio distinguent correctement entre C ++ et C ++ / CLI. Donc, certains mots-clés C ++ / CLI sont mis en surbrillance même dans un natif simple C ++. ( tableau est un autre).

Cela n'affecte que la sélection de la syntaxe, pas le compilateur actuel.

La seule raison d'éviter ces mots est que si vous 1) Trouvez la mauvaise syntaxe en surbrillance trop gênante, ou 2) Planifiez sur le portage de votre application à C ++ / CLI.


0 commentaires