Является ли Visual C ++ intellisense "умнее", чем компилятор - PullRequest
2 голосов
/ 31 августа 2011

У меня есть следующий сценарий.

У меня есть базовый класс, из которого происходит класс.Однако все выглядит хорошо, каждый раз, когда я наводю курсор мыши на унаследованный член базового класса, intellisense прекрасно показывает это, EG BaseClass :: SomeMember.Однако, когда я пытаюсь скомпилировать, компилятор показывает различные ошибки (они касаются переменных и функций-членов, о которых intellisense хорошо сообщал).Компилятор говорит «они не являются действительными идентификаторами», что они «не принадлежат глобальному пространству имен».Кто-нибудь знает, почему это происходит?

Ответы [ 3 ]

8 голосов
/ 31 августа 2011

Если это VC2010, то да, в некотором смысле Intellisense умнее. Они перешли на использование внешнего интерфейса компилятора EDG для IntelliSense, и это более строгий, более совместимый со стандартами компилятор, чем собственный Microsoft. Так что есть случаи, когда IntelliSense и «настоящий» компилятор не согласны.

Иногда IntelliSense не прав, потому что у него нет полной картины (он работает в другом контексте и обрабатывает только небольшие фрагменты кода за раз), а иногда Intellisense является правильным, а компилятор неправильным (в терминах соответствия стандарту C ++), потому что интерфейс EDG просто лучше в этом отношении.

2 голосов
/ 31 августа 2011

Нет, intellisense определенно не умнее. Ваш код не работает. Задайте отдельный вопрос с соответствующими частями кода и сообщениями об ошибках, которые вы получаете.

1 голос
/ 31 августа 2011

Это зависит от вашего определения «умнее». Intellisense не является полноценным компилятором, но в него встроены всевозможные эвристики, помогающие справиться с неверным кодом. Если бы этого не было, то это было бы совершенно бесполезно.

Но эти эвристики в конечном итоге являются лишь догадками; иногда они будут вводить в заблуждение или ошибаться.

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