void print(OSTR& ostr,const OperatorDescriptor& opdef) const
void print(OSTR& ostr,const OperatorDescriptor& opdef, const ClassDescriptor& class1) const
  void print(OSTR& ostr,const OperatorDescriptor& opdef) const  {    ostr << endl;    // Print a comment above the function    if (class1.userClass())    {      cerr << "func= " << opdef.function() << "  comment1 = " << opdef.comment1() << endl;      ostr << opdef.comment1() << endl;      ostr << opdef.comment2() << endl;    }    ostr      << "template<class LHS,class RHS>" << endl      << "inline LHS&" << endl      << opdef.function()      << "(LHS& lhs,const RHS& rhs)" << endl      << "{" << endl      << "  typedef typename CreateLeaf<RHS>::Leaf_t Leaf_t;" << endl      << "  evaluate(lhs," << opdef.tag()      << "(),MakeReturn<Leaf_t>::make(CreateLeaf<RHS>::make(rhs)));"       << endl      << "  return lhs;" << endl      << "}" << endl;  }