public class OpenCLKernel(size_t dim = 1) if( (dim >= 1) && (dim <= 3) )
        {
                public this( OpenCLProgram program, in string kernelName )
                {
                        // ...
                }
        }

I have a class definition as above. When I want to create an instance as below,

        OpenCLKernel k = new OpenCLKernel( program, "kernelName" );

compiler tells me,

/test2.d(168): Error: template class `OpenCLKernel(ulong dim = 1) if (dim >= 1 && (dim <= 3))` is used as a type without instantiation; to instantiate it use `OpenCLKernel!(arguments)`


The "dim" template parameter has a default value of 1 already. Why does it still force me to give a value?

(DMD64 D Compiler v2.096.0)

Reply via email to