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