How to avoid multiple spelling `import`

Daniel Kozák via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jun 16 05:40:58 PDT 2015


On Tue, 16 Jun 2015 11:45:22 +0000
Dennis Ritchie via Digitalmars-d-learn
<digitalmars-d-learn at puremagic.com> wrote:

> Maybe not everyone needs these features. But, unfortunately, I 
> often use a lot of imported modules. And use every time the word 
> `import` very bad.
> 
> version (none) {
> import std.math,
>         std.conv,
>         std.stdio,
>         std.ascii,
>         std.range,
>         std.array,
>         std.regex,
>         std.format,
>         std.bigint,
>         std.traits,
>         std.random,
>         std.string,
>         std.numeric,
>         std.variant,
>         std.typecons,
>         std.container,
>         std.algorithm,
>         std.typetuple,
>         std.exception,
>         core.checkedint;
> }
> 
> I just want to import individual features of these modules.

mixin template include(w...)
{
    mixin _include!(w.length - 1, w);
}

mixin template _include(long N, i...)
{
    
    mixin("import " ~ i[N] ~ ";");
    mixin _include!(N - 1, i);
}

mixin template _include(long N : 0, i...)
{
    
    mixin("import " ~ i[N] ~ ";");
}

mixin include!(
    "std.stdio : writeln, write",
    "std.conv : to"
);

void main() {
    writeln(to!string(7));
}


More information about the Digitalmars-d-learn mailing list