Clang применяет другой стандарт С++ к другому файлуC++

Программы на C++. Форум разработчиков
Anonymous
Clang применяет другой стандарт С++ к другому файлу

Сообщение Anonymous »

Когда я использовал VSCode+XMake+Clangd+MSVC, clangd меня смутил.
Если бы я написал это в xmake.lua:

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

set_language("c++23")
Мне не удалось использовать std::filesystem. Затем я обнаружил, что Clangd расширил марку __cplusplus до 202400L в main.cpp и до 201402L в других файлах, что меня сбило с толку.
Затем я написал это в xmake.lua:

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

set_language("c++20")
Марко __cplusplus расширено до 202002L во всех файлах. Так что мой Clangd не мог распознать std::println, хотя он все еще способен компилироваться.
Я думал, что все проблемы были вызваны Clangd. Но как это решить?

VSCode 1.90.2, clangd 18.1.3, xmake v2.9.2+HEAD.6b6557c54, VS 17.10.1 п>

Подробнее здесь: https://stackoverflow.com/questions/786 ... frent-file

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