Traits mega template
monkyyy
crazymonkyyy at gmail.com
Sat Aug 9 17:16:21 UTC 2025
would a single mega template lib of traits bullshit be more
wildly more compile time and usable efficient then phoboes
isBlahBlahBlah?
when a isBidirectionalRange || isRandomAccess range is called, it
probaly has to either a) abstract out a isRange to memoize(adding
more template nesting or b) redetect if its a range twice
breaking memoization
Explain!T could contain all the infomation and then that tpye
could a) print everything it detects b)add normal ctfe functions
for common usecases
when you call a T.to!S, how much of std.traits gets called,
processed in a big indirect mess? How many calls of isStruct is
called before calling a "getStruct___" because if you call it on
int it dies?
When ive implimented my traits I find isNullable and isRange need
to detect each other because phoboes in its wisdom made nullable
a very very strange range so onto the pile of complexity it goes;
if it was imperative, short curiting of static if had 50/50 odds
to remove it entirely preemptively
Suppose instead you call explain!T once for a single `to`
function maybe you threw it out to a toImpl!(int,float) but all
the matching was standard code with a bunch of static ifs instead
of navigating the mess of headers
etc.
anyone tried that?
More information about the Digitalmars-d
mailing list