struct grammar_helper_base { int undefine(int *); }; template struct composite { template void eval(TupleT args) { } }; #include "header.h" template class action { public: void eparse() { int valx; actor.funx(valx); } private: ActionT actor; }; class rule { public: template rule(ParserT p) { p.eparse(); } }; void define() { action>> z; rule pp_expression = z; }