On 2/12/25 12:55 PM, WhatMeWorry wrote:

> struct HexBoard(F,I)
> {
>      this(F d, I r, I c) {}
>      //void displayHexBoard(HexBoard!(F,I) h) {}  // this compiles fine!
> }
>
> void displayHexBoard(HexBoard!(F,I) h) {}  // error undefined identifier
> F and I

Would isInstanceOf be useful? (Which is actually optional.) It necessitated two aliases in the struct:

void main()
{
    struct HexBoard(F, I)
    {
        alias Float = F;
        alias Int = I;

        this(F d, I r, I c) {}
    }

    import std.traits : isInstanceOf;
    void displayHexBoard(HB)(HB h)
        if (isInstanceOf!(HexBoard, HB))
    {
        pragma(msg, "The types are ", HB.Float, " and ", HB.Int);
    }

    auto h1 = HexBoard!(float,uint)(.25, 3, 7);
    displayHexBoard(h1);
}

Ali

Reply via email to