J
John
Hello,
I am trying to compile C++ code which uses rogue wave 9.0 classes on RHEL
4.0. I use gnu g++ compiler to compile the code.
Compiler is not able to match the right type of parameters to overload the
methods of RW classes.
Below are the two methods among others in the rw/ep_scntn.h header file
where compiler says cannot be overloaded.
RWBoolean contains(RWBoolean(*fn)(const_value,void*),void* x) const;
RWBoolean contains(RWBoolean(*fn)(value_type,void*),void* x) const
{ return base_type::contains(fn,x); }
Compiler is treating the first parameter in above methods as same.
When I issue a make command from one of our c++ module, I get below error
/usr/bin/g++ -g -fpic -D_POSIX_SOURCE -DTRACING -D__EXTENSIONS__ -D__RWCOMPILER_H__
-D_REENTRANT -D_RWCONFIG=8s -D_RWCONFIG_12d -D_RWSTDDEBUG -DRWDEBUG -c
TrackListMap.C -I../inc -I/psalms/common/inc -I/psalms/common/Map/inc -I/psalms/common/Scan/inc
-I/opt/ossasn1/linux-glibc2.2.trial/8.2.0-betaA/include -I/psalms/common/ASNFw2/sep/inc
-I/psalms/common/DbFw/inc -I/psalms/common/DbFwMgr/inc -I/psalms/common/Time/inc
-I/psalms/common/LoggingFw/inc -I/psalms/common/ExcepFw/inc -I/psalms/common/ConfigFw/inc
-I/psalms/common/SdtArm/inc -I/opt/RogueWave/SourcePro -o TrackListMap.o
In file included from ../inc/TrackListMap.h:18,
from TrackListMap.C:15:
/opt/RogueWave/SourcePro/rw/ep_scntn.h: In instantiation of
`RW_PCntnr<std::vector<const RWCString*, std::allocator<const RWCString*> >,
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >,
const RWCString>':
/opt/RogueWave/SourcePro/rw/ep_seq.h:50: instantiated from
`RW_PSeq<std::vector<const RWCString*, std::allocator<const RWCString*> >,
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >,
const RWCString>'
/opt/RogueWave/SourcePro/rw/tpordvec.h:65: instantiated from
`RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >'
/psalms/common/Map/inc/MapFile.h:27: instantiated from here
/opt/RogueWave/SourcePro/rw/ep_scntn.h:92: error: `RWBoolean
RW_PCntnr<StdColl, RWColl, T>::contains(RWBoolean (*)(typename
StdColl::value_type, void*), void*) const [with StdColl = std::vector<const
RWCString*, std::allocator<const RWCString*> >, RWColl =
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >, T =
const RWCString]' and `RWBoolean RW_PCntnr<StdColl, RWColl,
T>::contains(RWBoolean (*)(const T*, void*), void*) const [with StdColl =
std::vector<const RWCString*, std::allocator<const RWCString*> >, RWColl =
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >, T =
const RWCString]' cannot be overloaded
/opt/RogueWave/SourcePro/rw/ep_scntn.cc:96: error: `typename
RW_PCntnr<StdColl, RWColl, T>::value_type RW_PCntnr<StdColl, RWColl,
T>::find(RWBoolean (*)(typename StdColl::value_type, void*), void*) const
[with StdColl = std::vector<const RWCString*, std::allocator<const
RWCString*> >, RWColl = RWTPtrOrderedVector<const RWCString,
std::allocator<const RWCString*> >, T = const RWCString]' and `typename
RW_PCntnr<StdColl, RWColl, T>::value_type RW_PCntnr<StdColl, RWColl,
T>::find(RWBoolean (*)(const T*, void*), void*) const [with StdColl =
std::vector<const RWCString*, std::allocator<const RWCString*> >, RWColl =
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >, T =
const RWCString]' cannot be overloaded
..........................
...........................
any idea why we get above error. and how to fix the same.
Thanks & Regards,
Prakash
I am trying to compile C++ code which uses rogue wave 9.0 classes on RHEL
4.0. I use gnu g++ compiler to compile the code.
Compiler is not able to match the right type of parameters to overload the
methods of RW classes.
Below are the two methods among others in the rw/ep_scntn.h header file
where compiler says cannot be overloaded.
RWBoolean contains(RWBoolean(*fn)(const_value,void*),void* x) const;
RWBoolean contains(RWBoolean(*fn)(value_type,void*),void* x) const
{ return base_type::contains(fn,x); }
Compiler is treating the first parameter in above methods as same.
When I issue a make command from one of our c++ module, I get below error
/usr/bin/g++ -g -fpic -D_POSIX_SOURCE -DTRACING -D__EXTENSIONS__ -D__RWCOMPILER_H__
-D_REENTRANT -D_RWCONFIG=8s -D_RWCONFIG_12d -D_RWSTDDEBUG -DRWDEBUG -c
TrackListMap.C -I../inc -I/psalms/common/inc -I/psalms/common/Map/inc -I/psalms/common/Scan/inc
-I/opt/ossasn1/linux-glibc2.2.trial/8.2.0-betaA/include -I/psalms/common/ASNFw2/sep/inc
-I/psalms/common/DbFw/inc -I/psalms/common/DbFwMgr/inc -I/psalms/common/Time/inc
-I/psalms/common/LoggingFw/inc -I/psalms/common/ExcepFw/inc -I/psalms/common/ConfigFw/inc
-I/psalms/common/SdtArm/inc -I/opt/RogueWave/SourcePro -o TrackListMap.o
In file included from ../inc/TrackListMap.h:18,
from TrackListMap.C:15:
/opt/RogueWave/SourcePro/rw/ep_scntn.h: In instantiation of
`RW_PCntnr<std::vector<const RWCString*, std::allocator<const RWCString*> >,
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >,
const RWCString>':
/opt/RogueWave/SourcePro/rw/ep_seq.h:50: instantiated from
`RW_PSeq<std::vector<const RWCString*, std::allocator<const RWCString*> >,
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >,
const RWCString>'
/opt/RogueWave/SourcePro/rw/tpordvec.h:65: instantiated from
`RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >'
/psalms/common/Map/inc/MapFile.h:27: instantiated from here
/opt/RogueWave/SourcePro/rw/ep_scntn.h:92: error: `RWBoolean
RW_PCntnr<StdColl, RWColl, T>::contains(RWBoolean (*)(typename
StdColl::value_type, void*), void*) const [with StdColl = std::vector<const
RWCString*, std::allocator<const RWCString*> >, RWColl =
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >, T =
const RWCString]' and `RWBoolean RW_PCntnr<StdColl, RWColl,
T>::contains(RWBoolean (*)(const T*, void*), void*) const [with StdColl =
std::vector<const RWCString*, std::allocator<const RWCString*> >, RWColl =
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >, T =
const RWCString]' cannot be overloaded
/opt/RogueWave/SourcePro/rw/ep_scntn.cc:96: error: `typename
RW_PCntnr<StdColl, RWColl, T>::value_type RW_PCntnr<StdColl, RWColl,
T>::find(RWBoolean (*)(typename StdColl::value_type, void*), void*) const
[with StdColl = std::vector<const RWCString*, std::allocator<const
RWCString*> >, RWColl = RWTPtrOrderedVector<const RWCString,
std::allocator<const RWCString*> >, T = const RWCString]' and `typename
RW_PCntnr<StdColl, RWColl, T>::value_type RW_PCntnr<StdColl, RWColl,
T>::find(RWBoolean (*)(const T*, void*), void*) const [with StdColl =
std::vector<const RWCString*, std::allocator<const RWCString*> >, RWColl =
RWTPtrOrderedVector<const RWCString, std::allocator<const RWCString*> >, T =
const RWCString]' cannot be overloaded
..........................
...........................
any idea why we get above error. and how to fix the same.
Thanks & Regards,
Prakash