Problem with cudafee++ and templates


I am using CUDA with VS 2008 on Vista. The following code gives error when I compile it with nvcc. For some reasons, after the compilation by cudafe++, the __alignof operator inside the template function gets converted to alignof and I am getting an error since alignof is not defined. This problem doesn’t happen if I don’t use a template b’coz the __alignof operator gets evaluated before it reaches cudafe++. Has anyone else faced this problem or have a solution for it? (I tried to go through all possible header files to find where __alignof would be defined as alignof. But I could not find any.)

Thanks in advance :)
(PS: I got a similar error when I tried to use CUDA with TBB. This sample program reproduces the error.)


#include <stdio.h>

class A{
int a;double b;

void myfunc()
printf("\nAlignof: %d\n",__alignof(T));

int main()
return 0;