On Wednesday, 19 December 2018 at 15:09:47 UTC, bauss wrote:
On Wednesday, 19 December 2018 at 13:37:17 UTC, Andrey wrote:
Hi,
Here is a template mixin:
mixin template create(alias input, uint index, alias data)
{
    if(input.length < index) return;

    // ... some code
}

When I try to compile it, I get:
Error: declaration expected, not if

Is it possible to mixin operator 'if' directly inside my template mixin?

What you want to use is "static if".

The correct way to do the above would be this:

mixin template create(alias input, uint index, alias data)
{
    static if(input.length >= index) // Reversed the logic.
    {
        // ... some code
    }
}

That's assuming that it's compile-time data though.

If not then you can't do what you want to do.

What you can do is wrap it in a function in the mixin template which you just call after instantiating it.

Reply via email to