Boost logo

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