On Saturday, 27 May 2023 at 13:23:38 UTC, vushu wrote:
you can use: ``static if (__traits(hasMember, T, "magma"))`` ```D import std; struct LavaMan { void magma() { writeln(" LavaMan is throwing LAVA"); } } struct FakeVulcano { void try_making_lava() { writeln( " Making fake lava"); } } // all the magic void make_lava(T)(ref T lava_thing){ static if (__traits(hasMember, T, "magma")) lava_thing.magma(); else lava_thing.try_making_lava(); } int main() { LavaMan v; FakeVulcano l; make_lava(l); make_lava(v); return 0; } ``` ``` Making fake lava LavaMan is throwing LAVA ```