Thank you, Eric. I have subscribed and am reading your article. Regards, Chris On 1/4/2013 5:36 PM, Eric Niebler wrote:
On 1/4/2013 4:40 PM, Chris Russell wrote:
Hello, all. I'm reading the MPL book (again) and tinkering with some ideas for a new library for building complex FSM hierarchies [1].
I've got a minimal runtime library written that codifies the important concepts but now want to try to make it a native C++ EDSL and am wondering if it makes more sense to concentrate on MPL, Proto (or both)?
For pure education on the subject of C++ template metaprogramming the MPL and the amazing Abrahams/Gurtovoy book seems like the right starting place but would appreciate any advice you folks are willing to share with me.
Thanks, Chris
[1] I am aware of other FSM libs (e.g. StateChart, MSM) and likely some of what I'm planning is redundant. That's okay: my goal is to gain deeper understanding of C++ template metaprogramming by working through a non-trivial problem.
(Disclaimer: I'm the author of Proto and so am biased.)
MPL is a general-purpose library for meta-programming, but doesn't offer anything specifically targeted for building EDSLs. Proto, on the other hand, is designed with EDSLs in mind. I think it's the better tool for the job. That said, many of the concepts from MPL carry over into Proto, so if you're setting out to learn Proto, having a grasp of MPL will help.
A good way to learn more about Proto is to read the article series about it on cpp-next.com:
http://cpp-next.com/archive/2010/08/expressive-c-introduction/
There is a low-traffic mailing list dedicated to proto[*]. If you have questions, that's a good place to go for help. Or even stackoverflow, if you use the boost-proto tag.