On Friday, 1 January 2016 at 15:55:53 UTC, Bottled Gin wrote:
You might be able to just do `static if(__traits(compiles, new
YourClass()))` and if it returns true then figure it does.
That gives me a false positive if a defined constructor has
default value for all its arguments.
And how is that not a default constructor then? What semantic
difference is there between
this()
{
this(defValue);
}
this(T t)
{
...
}
and
this(T t = defValue)
{
...
}
The only way that I can think of that it could even matter would
be if you were trying to take the address of the constructor,
which would be a rather odd thing to do.
It seems like saying that a constructor with all default
arguments is not a default constructor is a distinction without
meaning. What are you doing that you would care?
- Jonathan M Davis