Почему Visual Studio 2008 выделяет внутреннее в качестве ключевого слова в коде C ++? - PullRequest
6 голосов
/ 24 августа 2009

Я портирую кодовую базу VC ++ 7 на VC ++ 9. Удивительно, но Visual Studio 2008 выдвигает на первый план внутреннее как ключевое слово в коде C ++, но выглядит так, что на самом деле это не рассматривается как таковое.

Что это - ошибка в VS, настройка среды, которую я еще не нашел, или признак того, что мне больше не позволят использовать внутренний в качестве обычного идентификатора в следующей версии? Какой мой лучший ход в этой ситуации?

Ответы [ 3 ]

7 голосов
/ 24 августа 2009

Я не уверен, но я думаю, что внутренний спецификатор может быть использован в проектах C ++ / CLI. Таким образом, поскольку существует только одно различие между настройками проекта между проектом, не относящимся к C ++ / CLI, и проектом C ++ / CLI, возможно, по этой причине он подсвечивается.

[Редактировать] Только что проверил, внутреннее IS ключевое слово в C ++ / CLI и генерирует IL, аналогичный тому, который генерируется проектом C #. Итак, мое оригинальное мышление кажется правильным. Похоже, это один парсер для всех разновидностей C ++ от Microsoft.

5 голосов
/ 24 августа 2009

Просто игнорируй это. «Проблема» в том, что не все части Visual Studio правильно различают C ++ и C ++ / CLI. Таким образом, некоторые ключевые слова C ++ / CLI выделяются даже в простом родном C ++. (array другой).

Это влияет только на подсветку синтаксиса, а не на фактический компилятор.

Таким образом, единственная причина, по которой следует избегать этих слов, заключается в том, что вы 1) считаете неправильный синтаксис слишком ярким, или 2) планируете портировать приложение на C ++ / CLI.

3 голосов
/ 24 августа 2009

Проблема в том, что синтаксический анализатор, используемый для выделения, не является одним из реальных синтаксических анализаторов C ++. «Один из», потому что VC ++, C ++ / Za и C ++ / CLI - это три диалекта с разными синтаксическими анализаторами. В симпатичном принтере VS используется общий синтаксический анализатор, который не всегда понимает это правильно. Например. у него есть один набор ключевых слов, поэтому он всегда предполагает, что «внутреннее» является ключевым словом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...