Clangd жалуется на ODR при использовании модулей C++-20C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Clangd жалуется на ODR при использовании модулей C++-20

Сообщение Anonymous »


Похоже, что 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
Ответить

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

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

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

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

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