某Hiroaki Softwareが、Win32APIコードをcuコードに混ぜてコンパイルしようとして妙なエラーに巻きこまれたらしいので調査したら、 CUDAのコンパイラであるところのnvccはクソであることが判明した。 具体的には、CreateWindow()中に一行コメントを書こうとして失敗したらしい。 この動作を以下のように再現できる。 test.cu #define func_macro(x,y) func(x,y) func(x, //comment y); func_macro(x, //comment y); do preprocessing $ nvcc -E test.cu | tail{ return cudaFuncGetAttributes(attr, (const char*)entry); } # 1 "<command-line>" 2 # 1 "test.c