|
Boost : |
From: Chris Alvers (cab322_at_[hidden])
Date: 2005-09-03 11:07:50
Hi,
I tried to do a depth_first_search with the following
graph type and visitor:
struct CycleDetector : public
boost::default_dfs_visitor
{
CycleDetector( bool& cycle ) : m_hasCycle(cycle) {};
void back_edge( T_Edge, const T_Graph& ) {
m_hasCycle = true; }
bool& m_hasCycle;
};
typedef boost::adjacency_list<
boost::setS,
boost::listS,
boost::bidirectionalS> T_Graph;
bool hasCycle(false);
CycleDetector cd(hasCycle);
boost::depth_first_search(m_graph, visitor(cd));
Compiling this on VC++ 7.1.3 (.NET Framework 1.1)
results in the following error message:
\boost\boost\property_map.hpp(349): error C2678:
binary '+' : no operator found which takes a left-hand
operand of type 'const std::vector<_Ty>::iterator' (or
there is no acceptable conversion)
with
[
_Ty=boost::default_color_type
]
----------------------
Changing the graph type definition to:
typedef boost::adjacency_list<
boost::setS,
boost::vecS,
boost::bidirectionalS> T_Graph;
(i.e. replacing the listS by vecS) works perfectly.
Is this a known restriction of the library ?
Best regards
Alex
___________________________________________________________
Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk