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) {}
