[SciPy-dev] implicit typename warnings in weave

Steve M. Robbins steven.robbins at videotron.ca
Sun Sep 1 15:42:31 CDT 2002


On Sun, Sep 01, 2002 at 04:18:54PM -0400, Christopher Fonnesbeck wrote:
> I am now having problems with weave (0.2.3).  Though the install of the
> package goes smoothly, the tests fail miserably, with the error messages
> punctuated with "implicit typename is deprecated" warnings.  I am using
> gcc 3.2 nowadays, so I wonder if this could be related?

Yes, they are related.  I had similar problems last week

    http://www.scipy.org/site_content/mailman?fn=scipy-user/2002-August/000607.html


I haven't completely resolved this -- for the moment, I gave up and went
back to GCC 2.95 -- but I did manage to get rid of many errors.
Here are the changes (relative to CVS, but probably applicable to 
0.2.3).

Cheers,
-Steve



Index: weave/CXX/Objects.hxx
===================================================================
RCS file: /home/cvsroot/world/scipy/weave/CXX/Objects.hxx,v
retrieving revision 1.5
diff -u -b -B -r1.5 Objects.hxx
--- weave/CXX/Objects.hxx	17 Jan 2002 18:28:41 -0000	1.5
+++ weave/CXX/Objects.hxx	1 Sep 2002 20:43:04 -0000
@@ -1406,19 +1406,19 @@
 	// Here's an important typedef you might miss if reading too fast...
 	typedef SeqBase<Object> Sequence;
 
-	template <class T> bool operator==(const SeqBase<T>::iterator& left, const SeqBase<T>::iterator& right);
-	template <class T> bool operator!=(const SeqBase<T>::iterator& left, const SeqBase<T>::iterator& right);
-	template <class T> bool operator< (const SeqBase<T>::iterator& left, const SeqBase<T>::iterator& right);
-	template <class T> bool operator> (const SeqBase<T>::iterator& left, const SeqBase<T>::iterator& right);
-	template <class T> bool operator<=(const SeqBase<T>::iterator& left, const SeqBase<T>::iterator& right);
-	template <class T> bool operator>=(const SeqBase<T>::iterator& left, const SeqBase<T>::iterator& right);
-
-	template <class T> bool operator==(const SeqBase<T>::const_iterator& left, const SeqBase<T>::const_iterator& right);
-	template <class T> bool operator!=(const SeqBase<T>::const_iterator& left, const SeqBase<T>::const_iterator& right);
-	template <class T> bool operator< (const SeqBase<T>::const_iterator& left, const SeqBase<T>::const_iterator& right);
-	template <class T> bool operator> (const SeqBase<T>::const_iterator& left, const SeqBase<T>::const_iterator& right);
-	template <class T> bool operator<=(const SeqBase<T>::const_iterator& left, const SeqBase<T>::const_iterator& right);
-	template <class T> bool operator>=(const SeqBase<T>::const_iterator& left, const SeqBase<T>::const_iterator& right); 
+	template <class T> bool operator==(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
+	template <class T> bool operator!=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
+	template <class T> bool operator< (const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
+	template <class T> bool operator> (const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
+	template <class T> bool operator<=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
+	template <class T> bool operator>=(const typename SeqBase<T>::iterator& left, const typename SeqBase<T>::iterator& right);
+
+	template <class T> bool operator==(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
+	template <class T> bool operator!=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
+	template <class T> bool operator< (const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
+	template <class T> bool operator> (const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
+	template <class T> bool operator<=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right);
+	template <class T> bool operator>=(const typename SeqBase<T>::const_iterator& left, const typename SeqBase<T>::const_iterator& right); 
 
 
 	extern bool operator==(const Sequence::iterator& left, const Sequence::iterator& right);
@@ -2345,10 +2345,10 @@
 
 	typedef MapBase<Object> Mapping;
 
-	template <class T> bool operator==(const MapBase<T>::iterator& left, const MapBase<T>::iterator& right);
-	template <class T> bool operator!=(const MapBase<T>::iterator& left, const MapBase<T>::iterator& right);
-	template <class T> bool operator==(const MapBase<T>::const_iterator& left, const MapBase<T>::const_iterator& right);
-	template <class T> bool operator!=(const MapBase<T>::const_iterator& left, const MapBase<T>::const_iterator& right);
+	template <class T> bool operator==(const typename MapBase<T>::iterator& left, const typename MapBase<T>::iterator& right);
+	template <class T> bool operator!=(const typename MapBase<T>::iterator& left, const typename MapBase<T>::iterator& right);
+	template <class T> bool operator==(const typename MapBase<T>::const_iterator& left, const typename MapBase<T>::const_iterator& right);
+	template <class T> bool operator!=(const typename MapBase<T>::const_iterator& left, const typename MapBase<T>::const_iterator& right);
 
 	extern bool operator==(const Mapping::iterator& left, const Mapping::iterator& right);
 	extern bool operator!=(const Mapping::iterator& left, const Mapping::iterator& right);



More information about the Scipy-dev mailing list