I've worked a lot with Vandevoorde. He's a very bright guy, and the most likely to succeed integrating this kind of stuff into a C++ context. Being one of the 3 EDG gurus, he has access to the most advanced C++ compiler today.|
See also http://mozart-dev.sf.net for a discussion of other ideas he's likely to try in the long run, like compiler plug-ins or active libraries (the latter being his invention, even if the Mozart web page is, I believe, the only place on the web where it's discussed).
Cons: it's not an open-source activity, and it's based on C++, which in my opinion limits the chances of success and increases complexity by a few hundreds orders of magnitude. Thanks to a new approach to parsing, the new XL compiler on http://xlr.sf.net has only 7 node types in the parse tree. I don't see this happening in his approach any time soon.
Finally, please avoid calling that "macro" in a C++ context, since there "macro" means something else ;-)