The state of string interpolation

Neia Neutuladh neia at
Thu Dec 6 21:08:40 UTC 2018

On Thu, 06 Dec 2018 20:49:08 +0000, Paul Backus wrote:
> Mixin templates can *add* symbols to the caller's scope, but they can't
> refer to *existing* symbols unless they're passed in as template
> parameters.

A mixin template is declared as `mixin template Foo() {}`. This form of 
template can refer to symbols in the instantiating scope. For instance:

mixin template Foo()
    auto b = a;

void main()
    int a = 12;
    mixin Foo;

All templates can be mixed in, but if it wasn't declared as `mixin 
template`, it only has access to symbols in the declaration scope.

More information about the Digitalmars-d mailing list