Re: Root and Geant 4.0.1 with STL

From: Matthew D. Langston (langston@SLAC.stanford.edu)
Date: Mon Aug 30 1999 - 18:49:34 MEST


Hi Rene,

Rene Brun wrote:
> 
> This class effectively clashes with the Root function Hash.  This is
> also one of the many side effects of using templates.  Each package
> should have a standard way for naming classes. This class should be
> called G4Hash and not Hash.
>
> Obviously the best solution to this problem would be to use the C++
> namespace facility.  This is unfortunately not possible for the time
> being if one wants to run with most compilers around.

GNU Autoconf could solve this class of problems for ROOT, since it could
easily test if the user's compiler supports namespaces, and then turn on
ROOT namespace support if it does.  Additionally, GNU Autoconf could
also add a compile time option to the ROOT package that allows the user
(e.g. the G4 project) to specify that they unequivocally need namespace
support.

GNU Autoconf would allow ROOT to let the user (e.g. the G4 project)
specify the requirements for their package pro-grammatically, and have
it enforced automatically.  For example, it would let the G4 project
specify the policy that "if you use G4 and ROOT, then you *must* have a
compiler that supports namespaces".

GNU Autoconf would allow ROOT to provide extra features and
functionality (e.g. namespace support) for those users who want or need
it, but still allow ROOT to work for those users who can't use (or don't
want to use) the optional features.

Adding a ROOT namespace to the ROOT libraries would be a straight
forward task, and making this namespace feature a compile-time option
would be made trivial task for GNU Autoconf.

--
Matthew D. Langston
SLD, Stanford Linear Accelerator Center
langston@SLAC.Stanford.EDU



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:39 MET