Clangd std::string и const char[...] [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Clangd std::string и const char[...] [закрыто]

Сообщение Anonymous »

У меня проблемы с clangd, который утверждает, что сравнение между std::string и const char невозможно [521].
// Image returns a std::string
REQUIRE (
surface->image() ==
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
".........................\n"
);

Вот сообщение об ошибке:

Недопустимые операнды для двоичного выражения («строка» (также известная как «basic_string») и «const char[521]») (clang)

Другой пример:
std::println("string size {}", sizeof(std::string));


В шаблоне: нет соответствующего конструктора для инициализации 'basic_string_view' (clang)

Компиляция_commands.json генерируется и регистрируется в .clangd:
InlayHints:
Enabled: false
CompileFlags:
CompilationDatabase: build

Для меня это чудо; компилятор все компилирует нормально. Я использую clang++ и все инструменты версии 20.1.2. Это ошибка или мне не хватает каких-то конфигов? Команды компиляции основаны на файле CMakeLists.txt:
...
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_compile_options(-stdlib=libc++ -mavx -march=native)
add_link_options(-stdlib=libc++)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
...

Изменить:
Здесь ls -l в /usr/lib/llvm-20/bin:
insgesamt 161844
-rwxr-xr-x 1 root root 27312 Aug 14 16:59 amdgpu-arch
-rwxr-xr-x 1 root root 557 Apr 2 2025 analyze-build
-rwxr-xr-x 1 root root 378832 Aug 14 16:59 bugpoint
-rwxr-xr-x 1 root root 34669672 Aug 14 16:59 c-index-test
-rwxr-xr-x 1 root root 132448 Aug 14 16:59 clang
lrwxrwxrwx 1 root root 5 Aug 14 16:59 clang++ -> clang
lrwxrwxrwx 1 root root 5 Aug 14 16:59 clang-20 -> clang
-rwxr-xr-x 1 root root 109680 Aug 14 16:59 clang-apply-replacements
-rwxr-xr-x 1 root root 257656 Aug 14 16:59 clang-change-namespace
-rwxr-xr-x 1 root root 56912 Aug 14 16:59 clang-check
lrwxrwxrwx 1 root root 5 Aug 14 16:59 clang-cl -> clang
lrwxrwxrwx 1 root root 5 Aug 14 16:59 clang-cpp -> clang
-rwxr-xr-x 1 root root 17088008 Aug 14 16:59 clangd
-rwxr-xr-x 1 root root 758144 Aug 14 16:59 clang-doc



Подробнее здесь: https://stackoverflow.com/questions/798 ... const-char
Ответить

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

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

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

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

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