Problem on array of fixed length of an user defined class

If an array of fixed length of a class is defined in device code, for example,
Float3D a[4];
where Float3D is a very simple class I defined with 3 floats to represent a point in space, the compiler will give the following error messages:
"Error: External calls are not supported (found non-inlined call to _cxa_vec_ctor. "
But it is no problem for intrinsic type, such as
float b[4];

Please help! Many thanks!

It probably means you have a function inside the class not declared as a device function, like a constructor. You are pretty close to the edge of what C++ features are supported in device code. Closer than I would usually go. Template support is pretty mature, class support not so much.

Same problem I had:
[url=“The Official NVIDIA Forums | NVIDIA”]http://forums.nvidia.com/index.php?showtopic=160502[/url] ← very very simple example!

In that thread I learnd that this bug (or what is it?) is still present in CUDA 3.0 beta, which makes me a bit worried…