www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - TWiD tip: ways to minimize string mixins

It was a somewhat slow week on the forums so I decided to spend a 
little extra time on this week's tip (though it quickly struck 
midnight so I might revisit this again next week).


There's a fairly big example with comments too. After a couple 
weeks of talk in the chat room about string mixins, I decided to 
kinda post a treatise: try to avoid them. But, I'm not one to say 
"just quit", so I show some alternatives to common requests too.

* no static foreach, but yes template recursion
* no gigantic mixin classes, but yes mixin aliases
* string concatenation is not fun, use helper templates

And a repeated theme from my book: string processing sucks, just 
write some kind of parser then work with structured data.

If I do return to this next week (no promises!), I might also 
talk about compile time of interface generators - not compile 
time interface generators, the compile time OF. Those of you who 
have worked with them will know that dmd can get very slow and 
very memory hungry with them.

I've had success in the past by simplifying the CTFE bits - 
techniques similar to this post - to make very significant 
compilation time improvements on such things without having the 
hit at run time that you might be worried about.

But that's another week! For now, enjoy this lengthier tip and 
sink your teeth into the several techniques briefly covered.
Feb 21 2016