On Friday, 9 February 2018 at 15:24:27 UTC, Mike Parker wrote:


====
import std.stdio;

enum numBytes = 12;
void foo(T, size_t N)(T[N] arr)
    if((N * T.sizeof) == numBytes)
{
        writeln(arr);
}

void bar(ubyte[12] arr)
{
    writeln(arr);
}

Also, it's worth mentioning in case you aren't aware that this can be expensive, depending on the size of the array. Static arrays are passed by value. You may want to make the arr parameters ref or, if you want to protect the contents, const ref:

void foo(T, size_t N)(ref const(T)[N] arr)

Reply via email to