To fix some warnings I added "typename" into some "typedef" lines. I am not sure about the correctness or the portability of these - especially the "typename" additions. Can anyone evaluate these?
These were the errors:
c++ -DHAVE_CONFIG_H -I. -I. -I../../simgear -I../.. -I/usr/X11R6/include -O1 -finline-limit-256 -finline-functions -Wall -pedantic -Wpointer-arith -D_REENTRANT -c -o Charcmp.o `test -f 'Charcmp.cpp' || echo './'`Charcmp.cpp
In file included from Charcmp.cpp:1:
Local.h:1118: declaration of `void* memrchr(const void*, int, unsigned int)' throws different exceptions
/usr/include/string.h:72: than previous declaration `void* memrchr(const void*, int, unsigned int) throw ()'
and warnings:
SkyBVTree.hpp:217: warning: `typename SkyBaseBVTree<Object, BoundingVolume>::BV' is implicitly a typename
SkyBVTree.hpp:217: warning: implicit typename is deprecated, please see the documentation for details
(etc.)
- Julian
Index: simgear/metar/Local.h =================================================================== RCS file: /var/cvs/SimGear-0.3/SimGear/simgear/metar/Local.h,v retrieving revision 1.1.1.1 diff -u -3 -p -d -r1.1.1.1 Local.h --- simgear/metar/Local.h 7 Sep 2002 02:58:19 -0000 1.1.1.1 +++ simgear/metar/Local.h 10 Nov 2002 19:28:47 -0000 @@ -1115,7 +1115,7 @@ int stregion(int); int ccregion(char *); char *rgnname(int); -void *memrchr(const void *, int, size_t); +//void *memrchr(const void *, int, size_t); bool sysmonms(char *, char *, ...); bool sysmoncl(char *); Index: simgear/sky/clouds3d/SkyBVTree.hpp =================================================================== RCS file: /var/cvs/SimGear-0.3/SimGear/simgear/sky/clouds3d/SkyBVTree.hpp,v retrieving revision 1.2 diff -u -3 -p -d -r1.2 SkyBVTree.hpp --- simgear/sky/clouds3d/SkyBVTree.hpp 14 Sep 2002 16:03:39 -0000 1.2 +++ simgear/sky/clouds3d/SkyBVTree.hpp 10 Nov 2002 19:28:49 -0000 @@ -214,9 +214,9 @@ class SkyBVTree : public SkyBaseBVTree<O { public: typedef SkyBaseBVTree<Object, BoundingVolume> BaseTree; - typedef BaseTree::BV BV; - typedef BaseTree::NodeObject NodeObject; - typedef BaseTree::Node Node; + typedef typename BaseTree::BV BV; + typedef typename BaseTree::NodeObject NodeObject; + typedef typename BaseTree::Node Node; void Clear() { Index: simgear/sky/clouds3d/SkyBVTreeSplitter.hpp =================================================================== RCS file: /var/cvs/SimGear-0.3/SimGear/simgear/sky/clouds3d/SkyBVTreeSplitter.hpp,v retrieving revision 1.2 diff -u -3 -p -d -r1.2 SkyBVTreeSplitter.hpp --- simgear/sky/clouds3d/SkyBVTreeSplitter.hpp 14 Sep 2002 16:03:39 -0000 1.2 +++ simgear/sky/clouds3d/SkyBVTreeSplitter.hpp 10 Nov 2002 19:28:50 -0000 @@ -52,7 +52,7 @@ template<class Object> class SkyBoundingBoxSplitter { public: - typedef SkyBaseBVTree<Object, SkyMinMaxBox>::NodeObject NodeObjectBox; + typedef typename SkyBaseBVTree<Object, SkyMinMaxBox>::NodeObject NodeObjectBox; //typedef SkyBaseBVTree<Object, SkyBoundingSphere>::NodeObject NodeObjectSphere; #if _MSC_VER == 1200 @@ -183,7 +183,7 @@ class SkyAABBTreeSplitter { public: typedef SkyMinMaxBox BV; - typedef SkyBaseBVTree<Object, BV>::NodeObject NodeObject; + typedef typename SkyBaseBVTree<Object, BV>::NodeObject NodeObject; SkyAABBTreeSplitter(const NodeObject* pObjs, unsigned int iNumObjs) : _splitter(pObjs, iNumObjs) {}