On Saturday, 8 April 2017 at 10:02:01 UTC, Mike Parker wrote:


I would expect if you implement it as a function the compiler will inline it. You can always use the pragma(inline, true) [1] with -inline to verify.

[1] https://dlang.org/spec/pragma.html#inline

This gives me no error, so it does inline it.

T kroundup32(T)(T x) {
    pragma(inline, true);
    --(x);
    (x)|=(x)>>1;
    (x)|=(x)>>2;
    (x)|=(x)>>4;
    (x)|=(x)>>8;
    (x)|=(x)>>16;
    return ++(x);
}

Reply via email to