Constructor template -- bug?

Bekenn leaveme at alone.com
Tue Mar 1 22:18:49 PST 2011


Code:

	class MyException : Exception
	{
		this(string message, string file, size_t line, Throwable next = null)
		{
			super(message, file, line, next);
		}

		this(string file = __FILE__, size_t line = __LINE__)(string message, 
Throwable next = null)
		{
			this(message, file, line, next);
		}
	}

	void main()
	{
		throw new MyException("Bluh!");
	}

Error message:

	test.d(8): Error: template test.MyException.__ctor(string file = 
__FILE__,size_t line = __LINE__) conflicts with constructor 
test.MyException.this at test.d(3)

If I remove the normal constructor and call super instead of this from 
the constructor template, then I get this slightly different error message:

	test.d(1): Error: constructor test.MyException.this conflicts with 
template test.MyException.__ctor(string file = __FILE__,uint line = 
__LINE__) at test.d(3)

Is this a compiler bug, or am I Doing It Wrong?


More information about the Digitalmars-d-learn mailing list