Eric Niebler a écrit :
Cool. Small variation. If I want the domain of A(B) always be X, I just specify it with make_expr ?
Concerning the other approach, I guess it boils down to have terminal of the given function object laying around?
terminal< exponent_ > exponent ={{}}; ----------------------^ ::type here
Right, although it would change the resulting tree, because exponent(x) would have tag type proto::tag::function instead of nt2::tag::exponent_. You'd have to make corresponding changes to your grammar. To be abel to be called and produce reuslts, exponent_ just need to be a Polymorphic Function Object I assume ? Hard to say. The only advice I can give is to try it and see. Seems I found my occupation for this week-end then. My main concern is that having lots of declared but unused const object may force the compiler to compile all fo them aka ending in a verrrrrrry long compile-time and prolly large executable too.
-- ___________________________________________ Joel Falcou - Assistant Professor PARALL Team - LRI - Universite Paris Sud XI Tel : (+33)1 69 15 66 35