Эта страница направлена против искусственного интеллекта?
Нет. Мы разрабатываем функции ИИ и ожидаем, что вы продолжите использовать любого помощника, который вам нравится. Аргумент более узкий: генерация и проверка — это разные задачи, и для проверки нужен инструмент, который каждый раз дает один и тот же ответ.
Заменяет ли функция визуального ассистента функцию «Военный пилот»?
Нет, и он этого не пытается сделать. Visual Studio и Copilot работают параллельно. Copilot создает черновики; парсер Visual Studio — это то, с чем вы сравниваете черновик.
Что на самом деле означает здесь слово «детерминированный»?
При наличии одного и того же кода парсер создает одну и ту же его модель — с теми же ссылками, определениями и областью переименования — при каждом запуске, на каждой машине, в каждой сессии. Никакой выборки, никакой температуры, никакой вариативности.
Приведите пример того, как модель ИИ допускает ошибки в C++.
Распространенные ошибки: выбор неправильной перегрузки при совпадении нескольких ( классический boolпример — предпочтение строкового литерала std::string), предложение члена или API, которого нет в данном типе, некорректная обработка владения умным указателем, из-за чего что-то освобождается дважды или никогда, и «обновление» вызова сигнатуры из другой версии библиотеки. Каждая из них может выглядеть вполне разумной в сравнении версий.
Если код компилируется, разве это не хорошо?
Нет. В C++ чистая компиляция означает, что синтаксис верен, а не что поведение корректно. Использование освобожденной памяти, висячие ссылки, переполнение целочисленных переменных и обычные логические ошибки компилируются без проблем и проявляются во время выполнения — часто только под нагрузкой. Компиляция некорректна.
Разве я не могу просто попросить ИИ найти все возможные варианты использования символа?
Вы можете это сделать, но не будете знать, является ли список полным. Модель возвращает правдоподобный набор и может пропустить случаи использования в макросах, шаблонах или файлах, которые она не рассматривала, — и в следующий раз она может вернуть другой набор. Парсер проходит по всему набору переводов и предоставляет вам полное количество, одно и то же при каждом запуске.