NVCC chokes on func(arg r[N]) unable to match function definition to an existing declaration

See the code below:

template <typename TValueType, unsigned int VLength=3>

class FixedArray

{

public:

	typedef TValueType  ValueType;

	FixedArray(const ValueType r[VLength]);

};

template <typename TValueType, unsigned int VLength>

FixedArray<TValueType, VLength>

::FixedArray(const ValueType r[VLength])

{

}

Everything works if I remove the superflouos VLength size, but this is a third-party library (ITK) so it isn’t really an option. Using CUDA 3.0. I couldn’t find why this argument length is even needed, but both MSVC and GCC accept it