Talking Points Memo
This Modern World
Working for Change
Book review: Darwinia
Reviewed: Friday, August 11, 2006
Summer reading: Spin
Reviewed: Saturday, August 5, 2006
Reviewed: Tuesday, July 18, 2006
the Omnivoire's Delimma
Reviewed: Wednesday, July 12, 2006
the Golem's Eye
Reviewed: Wednesday, May 31, 2006
more "real" C++ macros via template metaprogramming
Saturday, August 19, 2006
If it didn't end up being so ugly, it would be cute.
Although this technique might seem like just a cute C++ trick, it becomes powerful when combined with normal C++ code. In this hybrid approach, source code contains two programs: the normal C++ run-time program, and a template metaprogram which runs at compile time. Template metaprograms can generate useful code when interpreted by the compiler, such as a massively inlined algorithm -- that is, an implementation of an algorithm which works for a specific input size, and has its loops unrolled. This results in large speed increases for many applications.
This is from a longer article by Todd Veldhuizen referenced by Scott Meyers (it's on the web somewhere but I seem to have misplaced it ).
Someone should create a language that lets you do this without having to jump through so many hoops. It could work per taking source code as inputs and writing out new source code with the whole power of the language behind the transformations. A language like that would blow C++ out of the water in terms of popularity. What's that. Oh, sorry. I went off my meds again.