
From CVS as of Oct 14 12:04, with g++ 3.4.2. This is after the "fixes to
(hopefully) build with g++ 3.4 (and generally be less evil anyway)".
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/local/include/sigc++-2.0 -I/usr/local/lib/sigc++-2.0/include -I/usr/local/include/gtkmm-2.4 -I/usr/local/lib/gtkmm-2.4/include -I/usr/local/include/glibmm-2.4 -I/usr/local/lib/glibmm-2.4/include -I/usr/local/include/gdkmm-2.4 -I/usr/local/lib/gdkmm-2.4/include -I/usr/local/include/pangomm-1.4 -I/usr/local/include/atkmm-1.6 -Wall -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -g -O2 -c -o sp-item.o sp-item.cpp util/list.h: In instantiation of `Inkscape::Util::List<SPObject&>': util/list.h:127: instantiated from `Inkscape::Util::MutableList<SPObject&>' sp-item.cpp:181: instantiated from here util/list.h:89: error: invalid use of undefined type `class Inkscape::Util::List<SPObject&>' util/list.h:89: error: declaration of `class Inkscape::Util::List<SPObject&>' util/list.h: In copy constructor `Inkscape::Util::MutableList<SPObject&>::MutableList(const Inkscape::Util::MutableList<SPObject&>&)': util/list.h:123: error: `Inkscape::Util::List<T>::List(const Inkscape::Util::List<const T>&) [with T = SPObject&]' is private sp-item.cpp:187: error: within this context sp-item.cpp: In member function `void SPItem::lowerOne()': sp-item.cpp:187: error: initializing argument 1 of `_InputIterator std::find_if(_InputIterator, _InputIterator, _Predicate) [with _InputIterator = Inkscape::Util::MutableList<SPObject&>, _Predicate = bool (*)(const SPObject&)]' sp-item.cpp:189: error: could not convert `next_lower' to `bool' sp-item.cpp:192: error: could not convert `next_lower' to `bool' sp-item.cpp: In member function `void SPItem::lowerToBottom()': sp-item.cpp:209: error: could not convert `bottom' to `bool' sp-item.cpp:212: error: could not convert `bottom' to `bool' util/list.h: In copy constructor `Inkscape::Util::List<T>::List(const Inkscape::Util::List<const T>&) [with T = SPObject&]': sp-item.cpp:187: instantiated from here util/list.h:123: error: type `class Inkscape::Util::List<SPObject&>' is not a direct base of `Inkscape::Util::List<SPObject&>' /usr/lib/gcc/i686-redhat-linux/3.4.2/../../../../include/c++/3.4.2/bits/stl_iterator_base_types.h: At global scope: /usr/lib/gcc/i686-redhat-linux/3.4.2/../../../../include/c++/3.4.2/bits/stl_iterator_base_types.h: In instantiation of `std::iterator_traits<Inkscape::Util::MutableList<SPObject&> >': /usr/lib/gcc/i686-redhat-linux/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:336: instantiated from `_InputIterator std::find_if(_InputIterator, _InputIterator, _Predicate) [with _InputIterator = Inkscape::Util::MutableList<SPObject&>, _Predicate = bool (*)(const SPObject&)]' sp-item.cpp:187: instantiated from here /usr/lib/gcc/i686-redhat-linux/3.4.2/../../../../include/c++/3.4.2/bits/stl_iterator_base_types.h:129: error: no type named `iterator_category' in `class Inkscape::Util::MutableList<SPObject&>' /usr/lib/gcc/i686-redhat-linux/3.4.2/../../../../include/c++/3.4.2/bits/stl_iterator_base_types.h:131: error: no type named `difference_type' in `class Inkscape::Util::MutableList<SPObject&>' /usr/lib/gcc/i686-redhat-linux/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h: In function `_InputIterator std::find_if(_InputIterator, _InputIterator, _Predicate) [with _InputIterator = Inkscape::Util::MutableList<SPObject&>, _Predicate = bool (*)(const SPObject&)]': sp-item.cpp:187: instantiated from here /usr/lib/gcc/i686-redhat-linux/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:336: error: no matching function for call to `__iterator_category(Inkscape::Util::MutableList<SPObject&>&)' algorithms/find-last-if.h: In function `ForwardIterator Inkscape::Algorithms::find_last_if(ForwardIterator, ForwardIterator, UnaryPredicate) [with ForwardIterator = Inkscape::Util::MutableList<SPObject&>, UnaryPredicate = bool (*)(const SPObject&)]': sp-item.cpp:208: instantiated from here algorithms/find-last-if.h:26: error: no match for 'operator!=' in 'start != end' ./util/shared-c-string.h:56: note: candidates are: bool Inkscape::Util::operator!=(const char*, const Inkscape::Util::SharedCString&) ./util/shared-c-string.h:52: note: bool Inkscape::Util::operator!=(const Inkscape::Util::SharedCString&, const char*) algorithms/find-last-if.h:28: error: no match for 'operator!=' in 'start != end' ./util/shared-c-string.h:56: note: candidates are: bool Inkscape::Util::operator!=(const char*, const Inkscape::Util::SharedCString&) ./util/shared-c-string.h:52: note: bool Inkscape::Util::operator!=(const Inkscape::Util::SharedCString&, const char*) util/list.h: In constructor `Inkscape::Util::List<T>::List() [with T = SPObject&]': util/list.h:129: instantiated from `Inkscape::Util::MutableList<T>::MutableList() [with T = SPObject&]' sp-item.cpp:185: instantiated from here util/list.h:96: error: type `class Inkscape::Util::List<SPObject&>' is not a direct base of `Inkscape::Util::List<SPObject&>' util/list.h: In constructor `Inkscape::Util::List<T>::List(typename Inkscape::Traits::Reference<T>::RValue, const Inkscape::Util::List<T>&) [with T = SPObject&]': util/list.h:132: instantiated from `Inkscape::Util::MutableList<T>::MutableList(typename Inkscape::Util::List<T>::const_reference, const Inkscape::Util::MutableList<T>&) [with T = SPObject&]' util/list.h:166: instantiated from `Inkscape::Util::MutableList<T> Inkscape::Util::cons(typename Inkscape::Traits::Reference<T>::RValue, const Inkscape::Util::MutableList<T>&) [with T = SPObject&]' util/reverse-list.h:25: instantiated from `Inkscape::Util::MutableList<T> Inkscape::Util::reverse_list(InputIterator, InputIterator) [with T = SPObject&, InputIterator = Inkscape::Util::ForwardPointerIterator<SPObject, SPObject::SiblingIteratorStrategy>]' sp-item.cpp:184: instantiated from here util/list.h:99: error: type `class Inkscape::Util::List<SPObject&>' is not a direct base of `Inkscape::Util::List<SPObject&>' make[2]: *** [sp-item.o] Error 1 make[2]: Leaving directory `/home/imorgan/cvs/inkscape/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/imorgan/cvs/inkscape' make: *** [all] Error 2
Regards, Ian Morgan

Ian E. Morgan wrote:
From CVS as of Oct 14 12:04, with g++ 3.4.2. This is after the "fixes to
(hopefully) build with g++ 3.4 (and generally be less evil anyway)".
Yes. That update had fixed half the problem. The other half is waiting on Mental to get some sleep and get his brain in better order (always a good thing).
Mental, I think gcc bugzilla bug #9865 might have a clue. We might need to add a partial specialization like template <typename T> class List<T &>

On Thu, 2004-10-14 at 13:38, Jon A. Cruz wrote:
Mental, I think gcc bugzilla bug #9865 might have a clue. We might need to add a partial specialization like template <typename T> class List<T &>
Yep; thanks.
I think that's it.
I'd originally avoided including another specialization because I don't like duplicated code and I was under the erroneous impression that the <T const> specialization would cover it.
-mental
participants (3)
-
Ian E. Morgan
-
Jon A. Cruz
-
MenTaLguY