> I have an interesting issue, that makes me curious on how D handles it. > > (Traits template code)
You cannot spread out template specializations across modules. If you define template Trait(T : S); in a.d and template Trait(T : C); in b.d and try to use alias Trait!(S) sinst; in use.d, you'll get Error: a.Trait(T : S) at a.d(3) conflicts with b.Trait(T : C) at b.d(3) because the two Traits live in separate scopes. This makes C++ style trait templates just not work in D. Does anyone know an equivalent?
