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

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