Template specification conflict

Dmitry Olshansky dmitry.olsh at gmail.com
Tue Aug 2 04:55:45 PDT 2011


On 02.08.2011 15:06, simendsjo wrote:
> The following program gives me
> "Error: template t.S.__ctor(C) if(isSomeChar!(C)) conflicts with 
> constructor t.S.this at t.d(4)"
>
> Is this because char etc can be converted to uint? Shouldn't the 
> template specification make this unambiguous?
>
> import std.traits;
>
> struct S {
>     this(uint i) {}
>     this(C)(C c) if(isSomeChar!C) {}
> }
>
> void main() {}

struct S {
     this()(uint i) {}
     this(C)(C c) if(isSomeChar!C) {}
}

should do it, though it (and workaround) looks like a bug to me.

-- 
Dmitry Olshansky



More information about the Digitalmars-d-learn mailing list