Generative programming support in boost

I'm revisiting Czarnecki and Eisenecker's work (Generative Programming: Methods, Tools, and Applications) from 2000. I'm wondering what is available in boost that exploits (or even advances) on the techniques and code examples given there. It occurs to me that both the concept_check and the mpl library have something to offer in this respect. At the very least, there are few obvious things (e.g. if, apply_if, etc. in mpl). Is anyone actively applying boost code in this area? (I did find a series of posts from February 2002 on this topic, but not much since then.) Dave

Dave Gomboc <dave <at> cs.ualberta.ca> writes:
I'm revisiting Czarnecki and Eisenecker's work (Generative Programming: Methods, Tools, and Applications) from 2000. I'm wondering what is available in boost that exploits (or even advances) on the techniques and code examples given there.
It occurs to me that both the concept_check and the mpl library have something to offer in this respect. At the very least, there are few obvious things (e.g. if, apply_if, etc. in mpl). Is anyone actively applying boost code in this area?
FWIW, boost::fsm (preliminary submission in the sandbox, formal review request will follow soon), uses MPL to generate hierarchical/orthogonal state machine entry-/exit sequences and dispatch tables. State machines are also checked for errors (invalid transitions, etc.) at compile time. Regards, Andreas

"Dave Gomboc" <dave@cs.ualberta.ca> wrote
It occurs to me that both the concept_check and the mpl library have something to offer in this respect. At the very least, there are few obvious things (e.g. if, apply_if, etc. in mpl). Is anyone actively applying boost code in this area?
Our Relational Template Library makes extensive use of MPL. Regards, Arkadiy

Dave Gomboc <dave@cs.ualberta.ca> writes:
I'm revisiting Czarnecki and Eisenecker's work (Generative Programming: Methods, Tools, and Applications) from 2000. I'm wondering what is available in boost that exploits (or even advances) on the techniques and code examples given there.
Umm... everything? Well, almost everything. C&E gallop over so much terrain that it's pretty hard not to coincide with something they discussed.
It occurs to me that both the concept_check and the mpl library have something to offer in this respect. At the very least, there are few obvious things (e.g. if, apply_if, etc. in mpl). Is anyone actively applying boost code in this area?
I'm not sure what your question is. Generative programming itself is a design process/idiom. I can't really imagine how you'd directly support it with a library, though of course we have lots of tools in Boost that can be used to practice generative programming.
(I did find a series of posts from February 2002 on this topic, but not much since then.)
Maybe if you'd post a link to the other discussion I'd be able to figure out what this one's about ;-) -- Dave Abrahams Boost Consulting http://www.boost-consulting.com
participants (4)
-
Andreas Huber
-
Arkadiy Vertleyb
-
Dave Gomboc
-
David Abrahams