TemplateBenchmark

@nogc @safe
struct TemplateBenchmark (
uint pIndex
Args...
) {}

Members

Aliases

paramPack
alias paramPack = Args
Undocumented in source.

Variables

paramIndex
uint paramIndex;
Undocumented in source.

Examples

import std.meta;
import std.range : repeat;

auto getRandPair(T)()
{
    import std.random;

    struct rndParams
    {
        AliasSeq!(T, T) pack;
    }

    rndParams tmp;
    auto rnd = Random(unpredictableSeed);

    // Generate an integer in [0, 1023]
    tmp.pack[0] = cast(T) uniform(0, 1024, rnd);
    tmp.pack[1] = cast(T) uniform(0, 1024, rnd);
}

@FunctionBenchmark!("int add benchmark", 0.repeat(100), getRandPair!int) int add(int x, int y)
{
    return x + y;
}

@TemplateBenchmark!(0, int, float, double) @FunctionBenchmark!(
        "Templated add benchmark", 0.repeat(100), getRandPair) T templatedAdd(T)(T x, T y)
{
    return x + y;
}

Meta