Я работаю над проектом на основе CUDA, где мы используем вложенные пространства имен в файлах cu . В то время как код компилирует, Intellisense, похоже, не обнаруживает современных особенностей компилятора. Например, < /p>
заставит Intellisense неудачным с «квалифицированным именем не разрешено». Сообщение об ошибке, а исправление для всего файла будет отключена/сломана. определили стандарт C ++ до> 17 (где было введено гнездование пространства имен) в cmakelists.txt во всех возможных ароматах и комбинациях:
Код: Выделить всё
set(CMAKE_CUDA_STANDARD 20)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -std=c++20")
Intellisense также ведет себя правильно в файлах cpp , но не сбои в файлах cu . Как упомянуто компиляцию, но я хотел бы иметь функционирующий Intellisense. Как я могу проверить, какой CPP Standard Intellisense использует для файлов Cu и как адаптировать его так же, как и для компиляции? рабочие станции и с разными версиями CUDA и Vs. В настоящее время я тестирую с CUDA 12.5 и VS 17.12.4.
Обратите внимание, что тот же код правильно проанализируется другими инструментами, такими как Clangd.
Подробнее здесь:
https://stackoverflow.com/questions/794 ... s-in-cmake