Forward declarations of template specilizations.

Christian Kamm kamm-incasoftware at removethis.de
Sun Nov 16 00:14:20 PST 2008


> 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?



More information about the Digitalmars-d mailing list