On 06/21/14 18:01, Philippe Sigaud via Digitalmars-d-learn wrote: > In what way is a template more reliable than the equivalent function?
> mixin template Function(string name) { > mixin("public static int " ~ name ~ "() { return other.module." ~ > name ~"; }"); > } > > struct S { > mixin Function!"fctn1"; > } > > And this double-mixin construction seems needlessly complicated to me, It does not make much difference for this simple case, but doing it this way allows for other declarations that do not need to be mixed in. IOW if 'Function' contains more boilerplate, then it does not all need to be written inside a string. Not to mention it saves two sets of parens. :) A mixin template *is* slightly more reliable than a function, because it won't be (ab-)usable in many context where a normal function call works. But I think this choice is mostly an aesthetical (ie subjective) one. artur