как заставить визуальную студию распознавать определенные ключевые слова - PullRequest
0 голосов
/ 20 мая 2019

Я использую cuda в C ++, компилятор cuda «понимает» определенные ключевые слова (то есть global ), но подсветка синтаксиса в Visual Studio распознает эти ключевые слова как ошибки, хотя это ничего не нарушает, это довольно

есть ли способ заставить визуальную студию распознавать эти ключевые слова (не нужно переопределять их, просто заставьте визуальную студию понять, что они существуют).


__global__ void func(int* a, int* b)
{
    int place = blockIdx.x * blockDim.x + threadIdx.x;
        ///more code
}

1 Ответ

0 голосов
/ 20 мая 2019

Проблема здесь в задействованных компиляторах. Visual Studio имеет довольно умный редактор с так называемой функциональностью Intellisense. Этот редактор включает в себя настоящий компилятор C ++ - парсинг C ++ просто невозможен без него. Теперь __global__ не является ключевым словом C ++, поэтому у Intellisense есть все основания жаловаться.

В качестве обходного пути, поскольку это настоящий компилятор, вы можете воспользоваться этим:

#if defined __INTELLISENSE__
#define __global__
#endif

Теперь препроцессор Intellisense удалит __global__ и скомпилирует остаток как обычный C ++. Intellisense на самом деле не связывает, так что в дальнейшем нет никакого вреда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...