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