deadalnix:
The @templated is redundant with that backend capability of LDC.
The semantics is not the same. This code doesn't compile, the compiler enforces you are not using T in code that is annotated to be a template of just V:
struct Foo(T, V) { @templated(V) T bar() { return T.init; } } Bye, bearophile