Boost logo

Boost Users :

Subject: [Boost-users] [BGL] Is adjacency_iterator not Equality Comparable?
From: Hossein Haeri (powerprogman_at_[hidden])
Date: 2010-05-18 10:43:19


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&)


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net