Clangd жалуется на ODR при использовании модулей C++-20 ⇐ C++
Clangd жалуется на ODR при использовании модулей C++-20
Похоже, что clangd не может правильно десериализовать исходный файл, в котором есть объявления включения и импорта, поэтому он предполагает, что в моем коде есть нарушения ODR. Тем не менее, код компилируется и работает правильно, без каких-либо предупреждений. Как исправить комментарии clangd?
В качестве фиктивной модели представьте, что у меня есть этот простой модуль:
// some_module.cpp модуль; #include модуль экспорта SomeModule; экспорт std::string HelloWorld() { вернуть «Привет, Мир!»; } Теперь я хочу его использовать, но clangd продолжает жаловаться, что я нарушил ODR:
// main.cpp #include импортировать SomeModule; // жалоба clangd: // во включенном файле: 'std::basic_string' имеет разные определения // в разных модулях; Первое отличие - это определение в // модуль 'SomeModule.' нашел параметр шаблона // без аргумента по умолчанию (module_odr_violation_template_parameter) интервал основной() { std::cout
Похоже, что clangd не может правильно десериализовать исходный файл, в котором есть объявления включения и импорта, поэтому он предполагает, что в моем коде есть нарушения ODR. Тем не менее, код компилируется и работает правильно, без каких-либо предупреждений. Как исправить комментарии clangd?
В качестве фиктивной модели представьте, что у меня есть этот простой модуль:
// some_module.cpp модуль; #include модуль экспорта SomeModule; экспорт std::string HelloWorld() { вернуть «Привет, Мир!»; } Теперь я хочу его использовать, но clangd продолжает жаловаться, что я нарушил ODR:
// main.cpp #include импортировать SomeModule; // жалоба clangd: // во включенном файле: 'std::basic_string' имеет разные определения // в разных модулях; Первое отличие - это определение в // модуль 'SomeModule.' нашел параметр шаблона // без аргумента по умолчанию (module_odr_violation_template_parameter) интервал основной() { std::cout
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение