Clangd анализирует создание экземпляра объекта как объявление функции (не двусмысленность MVP)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Clangd анализирует создание экземпляра объекта как объявление функции (не двусмысленность MVP)

Сообщение Anonymous »

У меня есть следующий код C++

Код: Выделить всё

struct Foo {
Foo(int x) {}
};

int main() {
int x = 42;
Foo f(x);
}
Что я могу скомпилировать и выполнить с помощью clang++. Однако, если я открою этот код в Neovim, мой LSP (clangd) распознает f как функцию, а не объект:
Изображение

Сначала я подумал, что это как-то связано с самым неприятным анализом, однако я так не думаю код имеет какой-либо неоднозначность, поскольку ясно, что x — целочисленный объект. Есть какие-нибудь предложения о том, как я могу исправить синтаксический анализ clangd?

Подробнее здесь: https://stackoverflow.com/questions/792 ... p-ambiguit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»