Strange expression found in std.variant

Basile B. via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jun 3 09:29:51 PDT 2017


On Saturday, 3 June 2017 at 16:22:33 UTC, Francis Nixon wrote:
> When looking at std.variant I found the following line:
> return q{
>     static if (allowed!%1$s && T.allowed!%1$s)
>          if (convertsTo!%1$s && other.convertsTo!%1$s)
>              return VariantN(get!%1$s %2$s other.get!%1$s);
> }.format(tp, op);
>
> I was wondering what exactly the % signs where doing/what they 
> are for?

- q{} is a string that cmust contains D tokens. They allow 
highlightning in the editors, that's why you missed the point.

- % is a format specifier

- q{}.format() is format() called in the UFCS fashion


More information about the Digitalmars-d-learn mailing list