РЕДАКТИРОВАТЬ: Решение: повторно объявить "using namespacer std;" в файле .cpp!
Я использую Code :: Blocks, и я не могу получить векторный объект, чтобы показать мне его доступные функции вне заголовка, в котором я его объявляю!
Я не могу получить коробку, показывающую мне все функции, которые я могу выполнять с объектом.
У меня это в моем .h:
vector<DrawObject> objects;
И в моем .cpp (файла .h) это ничего не показывает:
objects.
Если я делаю объекты. в .cpp он покажет все, как должно. Это будет работать, и это мелочь, но было бы удобно.
1 ответ
Это сделано намеренно, и я подозреваю, что вы ничего не можете сделать.
Автозавершение кода для C ++ сложно, потому что IDE по существу необходимо скомпилировать весь (потенциально неполный и ошибочный) код. В любом случае C ++ сложно анализировать, не говоря уже о необходимости заботиться о непрерывной фоновой компиляции неполного кода.
Как следствие, большинство IDE (включая Code :: Blocks) на самом деле не реализуют полный синтаксический анализатор, а только очень элементарное подмножество, а завершение кода довольно примитивно.
Это может измениться в будущем, поскольку сейчас существует мощное и довольно эффективное решение под названием libclang для это. Но до тех пор, пока Code :: Blocks не будет исправлен для внутреннего использования, такое поведение будет сохраняться.
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.
std::vector<DrawObject>
Я видел и более глупые вещи, связанные с функциями типа intellisense. Стоит попробовать.