[BGL] Is adjacency_iterator not Equality Comparable?
Dear all, [Boost 1.42, GCC 3.4.5 under MinGW in WinXP] I have a piece of program like this: typedef graph_type::adjacency_iterator iterator; iterator begin, end; boost::tie(begin, end) = boost::adjacent_vertices(curr_, *graph_ptr_); //... ArrFreq nextArr = l.front(); //... iterator i = find(begin, end, nextArr); And, I get the error message in the P.S. once I try the last line above. I was wondering if that's because: 1) adjacency_iterator is not equality comparable. Or, 2) the value type of adjacency_iterator is not comparable with the graph's vertex type. Or, 3) even something else? TIA, --Hossein P.S. /lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algo.h:172: error: no match for 'operator==' in '((boost::iterator_facade<boost::adjacency_iterator<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, ArrFreq, TransRule::Type, boost::no_property, boost::listS>, size_t, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::sep_<size_t, boost::property<boost::edge_bundle_t, TransRule::Type, boost::no_property> >*, std::vector<boost::detail::sep_<size_t, boost::property<boost::edge_bundle_t, TransRule::Type, boost::no_property> >, std::allocator<boost::detail::sep_<size_t, boost::property<boost::edge_bundle_t, TransRule::Type, boost::no_property> > > > >, size_t, boost::detail::edge_desc_impl<boost::directed_tag, size_t>, ptrdiff_t>, ptrdiff_t>, size_t, boost::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::random_access_traversal_tag>, size_t, ptrdiff_t>*)(&__first))->boost::iterator_facade<I, V, TC, R, D>::operator* [with Derived = boost::adjacency_iterator<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, ArrFreq, TransRule::Type, boost::no_property, boost::listS>, size_t, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::sep_<size_t, boost::property<boost::edge_bundle_t, TransRule::Type, boost::no_property> >*, std::vector<boost::detail::sep_<size_t, boost::property<boost::edge_bundle_t, TransRule::Type, boost::no_property> >, std::allocator<boost::detail::sep_<size_t, boost::property<boost::edge_bundle_t, TransRule::Type, boost::no_property> > > > >, size_t, boost::detail::edge_desc_impl<boost::directed_tag, size_t>, ptrdiff_t>, ptrdiff_t>, Value = size_t, CategoryOrTraversal = boost::detail::iterator_category_with_traversal<std::input_iterator_tag, boost::random_access_traversal_tag>, Reference = size_t, Difference = ptrdiff_t]() == __val' FlowGraph.cpp:148: note: candidates are: bool operator==(const ArrFreq&, const ArrFreq&) bool operator==(const Arrangement&, const Arrangement&)
On Tue, 18 May 2010, Hossein Haeri wrote:
Dear all,
[Boost 1.42, GCC 3.4.5 under MinGW in WinXP]
I have a piece of program like this:
typedef graph_type::adjacency_iterator iterator; iterator begin, end; boost::tie(begin, end) = boost::adjacent_vertices(curr_, *graph_ptr_); //... ArrFreq nextArr = l.front(); //... iterator i = find(begin, end, nextArr);
And, I get the error message in the P.S. once I try the last line above. I was wondering if that's because:
1) adjacency_iterator is not equality comparable. Or, 2) the value type of adjacency_iterator is not comparable with the graph's vertex type. Or, 3) even something else?
Could you please send a complete program that I can try to compile here? GCC 3.4.5 is old and I'd like to see if the issue occurs on newer versions. -- Jeremiah Willcock
participants (2)
-
Hossein Haeri
-
Jeremiah Willcock