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