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