Eric Niebler
I am actively working on a generic expression template framework called proto. It is already checked into Boost CVS as part of xpressive (see boost/xpressive/proto on CVS HEAD). It is also being used in the development of Spirit-2. I think it would be a very good fit for what you are trying to do.
So I am too late again. Actually I am working on a rework (better complete redesign) of Daixtrose called etl that fits the way things work at boost and also makes use of fusion and mpl. If you are interested in some fragments of my design thoughts, please contact me by mail. I am very interested in having compile time differentiation supported right from the beginning. Also I have some thoughts about how to implement flexible disambiguation mechanisms and how to achieve non-intrusive ETs for all classes. After a first glance at proto I feel like disambiguation is not included, but I may be wrong ...
Unfortunately, the code is still in some flux, and as such is not documented. I have some read-me material you might find helpful, but nothing complete or comprehensive. Let me know, and I can send it along.
Yes, please. I have some comments on your code, but feel a little lost with all the preprocessor stuff. If you can provide some meta info like e.g. design decisions this makes a first step much easier ( especially for coders like me with lower skills than Eric N.). Markus