
Stephen Torri wrote:
On Thu, 2007-04-12 at 23:50 +0300, Peter Dimov wrote:
MSVC 8 says that you're using an uninitialized 'node' variable here. Is this intended?
The code needs to be changed to creating and fully initializing a node before adding it. If you read the rest of the function you will notice that I add the unitialized Vertex, grab a handle to it and then fill it in.
I see; so the error in property_map is caused by something else then. Here's the complete call stack at the time I get an assertion from the standard library... hopefully it can give you some clues as to why it attempts to create an invalid vector iterator. I can't help you more since I know nothing about the Graph library, maybe someone more familiar with it will take a look?
testbed8.exe!std::_Vector_const_iterator<enum boost::default_color_type,std::allocator<enum boost::default_color_type>
::operator+=(int _Off=20) Line 148 + 0x50 bytes C++ testbed8.exe!std::_Vector_iterator<enum boost::default_color_type,std::allocator<enum boost::default_color_type> ::operator+=(int _Off=20) Line 363 C++ testbed8.exe!std::_Vector_iterator<enum boost::default_color_type,std::allocator<enum boost::default_color_type> ::operator+(int _Off=20) Line 369 + 0xc bytes C++ testbed8.exe!boost::iterator_property_map<std::_Vector_iterator<enum boost::default_color_type,std::allocator<enum boost::default_color_type> ,boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS>,unsigned long,unsigned long const &,enum boost::vertex_index_t>,enum boost::default_color_type,enum boost::default_color_type &>::operator[](void * v=0x00c76338) Line 351 + 0x67 bytes C++ testbed8.exe!boost::put<boost::iterator_property_map<std::_Vector_iterator<enum boost::default_color_type,std::allocator<enum boost::default_color_type> ,boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS>,unsigned long,unsigned long const &,enum boost::vertex_index_t>,enum boost::default_color_type,enum boost::default_color_type &>,enum boost::default_color_type &,void *,enum boost::default_color_type>(const boost::put_get_helper<enum boost::default_color_type &,boost::iterator_property_map<std::_Vector_iterator<enum boost::default_color_type,std::allocator<enum boost::default_color_type> ,boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS>,unsigned long,unsigned long const &,enum boost::vertex_index_t>,enum boost::default_color_type,enum boost::default_color_type &> > & pa={...}, void * k=0x00c76338, const boost::default_color_type & v=white_color) Line 321 + 0xc bytes C++ testbed8.exe!boost::depth_first_search<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS>,boost::topo_sort_visitor<std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > ,boost::iterator_property_map<std::_Vector_iterator<enum boost::default_color_type,std::allocator<enum boost::default_color_type> ,boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS>,unsigned long,unsigned long const &,enum boost::vertex_index_t>,enum boost::default_color_type,enum boost::default_color_type &> >(const boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS> & g={...}, boost::topo_sort_visitor<std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > > vis={...}, boost::iterator_property_map<std::_Vector_iterator<enum boost::default_color_type,std::allocator<enum boost::default_color_type> ,boost::adj_list_vertex_property_map<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS>,unsigned long,unsigned long const &,enum boost::vertex_index_t>,enum boost::default_color_type,enum boost::default_color_type &> color={...}, void * start_vertex=0x00c761c8) Line 197 + 0x26 bytes C++ testbed8.exe!boost::detail::dfs_dispatch<boost::detail::error_property_not_found>::apply<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS>,void *,boost::topo_sort_visitor<std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > ,boost::topo_sort_visitor<std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > >,enum boost::graph_visitor_t,boost::bgl_named_params<int,boost::buffer_param_t,boost::no_property> (const boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS> & g={...}, boost::topo_sort_visitor<std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > > vis={...}, void * start_vertex=0x00c761c8, const boost::bgl_named_params<boost::topo_sort_visitor<std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > >,enum boost::graph_visitor_t,boost::bgl_named_params<int,boost::buffer_param_t,boost::no_property> & params={...}, boost::detail::error_property_not_found __formal={...}) Line 254 + 0xa6 bytes C++ testbed8.exe!boost::depth_first_search<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS>,boost::topo_sort_visitor<std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > >,enum boost::graph_visitor_t,boost::bgl_named_params<int,boost::buffer_param_t,boost::no_property> (const boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS> & g={...}, const boost::bgl_named_params<boost::topo_sort_visitor<std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > >,enum boost::graph_visitor_t,boost::bgl_named_params<int,boost::buffer_param_t,boost::no_property> & params={...}) Line 337 + 0xf8 bytes C++ testbed8.exe!boost::topological_sort<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS> const ,std::back_insert_iterator<std::vector<void *,std::allocator<void *> > ,int,boost::buffer_param_t,boost::no_property>(const boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS> & g={...}, std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > result={...}, const boost::bgl_named_params<int,boost::buffer_param_t,boost::no_property> & params={...}) Line 64 + 0x77 bytes C++ testbed8.exe!boost::topological_sort<boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS> const ,std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > (const boost::adjacency_list<boost::setS,boost::setS,boost::directedS,boost::property<enum boost::vertex_index_t,unsigned long,boost::property<enum boost::vertex_name_t,boost::shared_ptr<Component>,boost::no_property> ,boost::no_property,boost::no_property,boost::listS> & g={...}, std::back_insert_iterator<std::vector<void *,std::allocator<void *> > > result={...}) Line 71 + 0x31 bytes C++ testbed8.exe!main(int __formal=1, int __formal=1) Line 256 + 0x43 bytes C++ testbed8.exe!__tmainCRTStartup() Line 318 + 0x19 bytes C testbed8.exe!mainCRTStartup() Line 187 C kernel32.dll!7c816fd7()