Hi Roger, Indeed it is a bug. It seems that CINT does not yet handle this type of arguments. Cheers, Philippe -----Original Message----- From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Roger Moore Sent: Thursday, September 12, 2002 5:30 PM To: roottalk@pcroot.cern.ch Subject: [ROOT] rootcint problem I've run into a problem with rootcint and template functions with ROOT 3.03/05. The problem exists when the template function uses a typename defined inside the template argument. For example the function: template <class VALUE> LeCut<VALUE> operator<=(const VALUE&, const VALUE&); works fine but the moment that I change this to: template <class VALUE> LeCut<VALUE> operator<=(const VALUE&, const VALUE::value_type &); rootcint gets very unhappy and generates the errors: Error: class,struct,union or type VALUE not defined FILE:LeCut.hpp LINE:96 Error: class,struct,union or type VALUE not defined FILE:LeCut.hpp LINE:96 Internal error: global function template arg type FILE:LeCut.hpp LINE:96 It seems that rootcint does not wait until the function template is instantiated before trying to look up 'VALUE::value_type' and since it obviously can't do this until it is instantiated, and VALUE is defined, it produces an error. I'm presuming that this is a bug? Roger
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:09 MET