CIDA 2.1 EmuDebug mode problem Work on device but not on emulator

Hi again. Recently i have ported my code from CUDA 1.1. to CUDA 2.1.

My code compiles perfectly and run on device.

But when i am trying to use device emulation, compilation failed with strange errors and warnings.

I have extremely complex code using template methaprogramming, so i think that problem in C++.

This code

template<int tag_,class Type_,class Next_ = NilCase>

struct CASE


	enum {tag = tag_}; //  warning C4146: unary minus operator applied to unsigned type, result still unsigned

	typedef Type_ Type;

	typedef Next_ Next;


And then the compiler don’t see any data that contain my VECTOR<n,T> class that uses inheritance from outher class.

So, i dont understand why code compiles and run on device, but don’t compiles on emulator.

May be i can play with some compiler keys to force C++ methaprogramming work on device emulation mode.

I know, there is no fully C++ support yet, but my code compiles on device. Is there anything i can do?


i use these command line options for device:

$(CUDA_BIN_PATH)\nvcc.exe -ccbin "$(VCInstallDir)bin" -c -D_DEBUG -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/Wp64,/Od,/Zi,/RTC1,/MTd -I"$(CUDA_INC_PATH)" -I./ -I../../common/inc --ptxas-options=-v -keep --maxrregcount 32 -o $(ConfigurationName)\cppIntegration.obj

and these for emulatiom mode:

$(CUDA_BIN_PATH)\nvcc.exe -ccbin "$(VCInstallDir)bin" -deviceemu -c -D_DEBUG -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd -I"$(CUDA_INC_PATH)" -I./ -I../../common/inc -o $(ConfigurationName)\cppIntegration.obj