Multiple template alias parameters
Brian Schott via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri May 8 14:56:55 PDT 2015
On Friday, 8 May 2015 at 12:44:31 UTC, Artur Skawina wrote:
> On 05/08/15 03:53, Brian Schott via Digitalmars-d-learn wrote:
>> The problem occurs when I want to register multiple modules to
>> scan for functions. The grammar does not allow this syntax:
>>
>> ```
>> template (alias Modules ...) {
>> ...
>> ```
>
> The grammar allows omitting the 'alias' keyword.
>
> artur
alias parameters are different from normal template parameters.
They're not necessary for this problem, but they are for others.
As an example:
void traceVar(alias var, size_t line = __LINE__, string file =
__FILE__)()
{
import std.stdio: stderr;
stderr.writeln(file, "(", line, ") ", var.stringof, ": ", var);
}
This allows you to print a variable's name and value by only
passing the variable once as a template argument. Allowing
"template Tem(alias Args ...)" syntax would let me trace multiple
variables at once.
If you omit "alias", "var.stringof" evaluates to "var" instead of
its name in the calling context.
More information about the Digitalmars-d-learn
mailing list