| Summary: | geant4.7.1.p01, problem with multimap class. | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | isabelle.dupays |
| Component: | processes/hadronic/models | Assignee: | dennis.herbert.wright |
| Status: | CLOSED INVALID | ||
| Severity: | normal | CC: | isabelle.dupays |
| Priority: | P2 | ||
| Version: | 7.1 | ||
| Hardware: | Other | ||
| OS: | AIX | ||
Geant4 does not officially support these platforms, so we cannot reproduce your problem. However, I will try to find someone who can help. I will refer your problem to two people who have used Geant4 on AIX in the recent past. |
We try to install the library geant4 (version 7.1.p01) on our IBM SP4 computer (AIX 5.2), and specially the gate software (version 1.2.0). At the compilation of one of the gate module (src/GateMuonPhysics.cc), we have a problem. The problem came from the file source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragmentsPool.hh, and specially from this line : std::multimap<const std::pair<G4int,G4int>, const G4VFermiFragment*, std::less<const std::pair<G4int,G4int> > >::iterator We have to correct the programm (suppress the const attribute) : std::multimap<std::pair<G4int,G4int>, const G4VFermiFragment*, std::less<std::pair<G4int,G4int> > >::iterator We reproduce this on an simple example. This example works if we use the g++ compiler (Compaq Linux), not with the c++ compiler (c++) of our NEC SX5, not with the xlC compiler of our IBM SP4. IBM_SP4 : more map.C #include <map> using namespace std; main() { multimap<const pair<int,int>, const int> iterator; // Correction multimap<pair<int,int>, const int> iterator; return 0; } IBM_SP4 : xlC -c map.C xlC: "/usr/vacpp/include/xmemory", line 291.23: 1540-0401 (S) The member "std::allocator<const std::pair<int,int> >::address(const_reference) const" is already declared. "/usr/vacpp/include/xmemory", line 289.17: 1540-0425 (I) "address" is defined on line 289 of "/usr/vacpp/include/xmemory". "/usr/vacpp/include/xtree", line 141.17: 1540-0700 (I) The previous message was produced while processing "class std::allocator<const std::pair<int,int> >". "/usr/vacpp/include/xtree", line 124.15: 1540-0700 (I) The previous message was produced while processing "class std::_Tree<std::_Tmap_traits<const std::pair<int,int>,const int,std::less<const std::pair<int,int> >,std::allocator<std::pair<const std::pair<int,int>,const int> >,1> >". "/usr/vacpp/include/map", line 161.15: 1540-0700 (I) The previous message was produced while processing "class std::multimap<const std::pair<int,int>,const int,std::less<const std::pair<int,int> >,std::allocator<std::pair<const std::pair<int,int>,const int> > >". "map.C", line 5.1: 1540-0700 (I) The previous message was produced while processing "main()". NEC SX5 : c++ -c map.C "/usr/include/C++/xmemory", line 62: fatal(403): function "std::allocator<_Ty>::address(std::allocator<_Ty>::reference) const [with _Ty=std::_Tree<std::_Tmap_traits<const std::pair<int, int>, const int, std::less<const std::pair<int, int>>, std::allocator<std::pair<const std::pair<int, int>, const int>>, true>>::key_type]" has already been declared const_pointer address(const_reference __X) const ^ detected during: instantiation of class "std::allocator<_Ty> [with _Ty=std::_Tree<std::_Tmap_traits<const std::pair<int, int>, const int, std::less<const std::pair<int, int>>, std::allocator<std::pair<const std::pair<int, int>, const int>>, true>>::key_type]" at line 79 of "/usr/include/C++/xtree" instantiation of class "std::_Tree<_Tr> [with _Tr=std::_Tmap_traits<const std::pair<int, int>, const int, std::less<const std::pair<int, int>>, std::allocator<std::pair<const std::pair<int, int>, const int>>, true>]" at line 104 of "/usr/include/C++/map" instantiation of class "std::multimap<__K, _Ty, _Pr, __A> [with __K=const std::pair<int, int>, _Ty=const int, _Pr=std::less<const std::pair<int, int>>, __A=std::allocator<std::pair<const std::pair<int, int>, const int>>]" at line 8 of "map.C" Isabelle DUPAYS - Assistance IDRIS ------------------------------------------------------------------------ Tel : 01.69.35.85.52 Fax : 01.69.85.37.75 E-Mail: Isabelle.Dupays@idris.fr http://www.idris.fr Adresse: IDRIS - Bat.506 - BP 167 - 91403 Orsay Cedex - France ------------------------------------------------------------------------