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