
What about introducing a macro: #define BOOST_PROTO_WRAP(DOMAIN,EXPRESSION) \ namespace boost { namespace proto { \ template<typename E> \ struct generate<DOMAIN, E> { \ typedef EXPRESSION<E> type; \ static type make (E const& expr) { \ return type (expr); \ } \ }; \ } } as far as I can tell one does never need something different from the above boilerplate code. (otherwise I'd like to see examples, for my own education) Not a big deal, I know, but looks nicer (and sound nicer in the docs as well, I think). Have fun in Colorado! Maurizio