2010-06-04 4 views
1

J'essaie de disposer des sommets en utilisant la bibliothèque de graphes Boost. Cependant, je suis confronté à des problèmes de compilation dont je ne suis pas sûr. Est-ce que j'utilise le BGL d'une manière incorrecte? Mon code est:Comment utiliser la bibliothèque de graphes Boost pour disposer des verticies?

PositionVec position_vec(2); 
PositionMap position(position_vec.begin(), get(vertex_index, g)); 
int iterations = 100; 
double width = 100.0; 
double height = 100.0; 
minstd_rand gen; 
rectangle_topology<> topology(gen, 0, 0, 100, 100); 
fruchterman_reingold_force_directed_layout(g, position, topology); //Compile fails on this line 

Les diagnostics produits par clang ++ (je l'ai aussi essayé GCC) sont les suivants:

In file included from test.cpp:2: 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:3: error: no member named 'dimensions' in 
     'boost::simple_point<double>' 
    BOOST_STATIC_ASSERT (Point::dimensions == 2); 
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
In file included from test.cpp:2: 
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:13: 
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/graph_traits.hpp:15: 
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/tuple/tuple.hpp:24: 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/static_assert.hpp:118:49: note: instantiated from: 
     sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST(B) >)>\ 
               ^
In file included from test.cpp:2: 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:3: note: instantiated from: 
    BOOST_STATIC_ASSERT (Point::dimensions == 2); 
^     ~~~~~~~ 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:31: note: instantiated from: 
    BOOST_STATIC_ASSERT (Point::dimensions == 2); 
         ~~~~~~~^ 
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:417:19: note: in instantiation of template class 
     'boost::grid_force_pairs<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0, 2147483647, 399268537> >, 
     boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *, 
     std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >, 
     boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned 
     long>, boost::simple_point<double>, boost::simple_point<double> &> >' requested here 
        make_grid_force_pairs(topology, position, g)), 
       ^
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:431:3: note: in instantiation of function template 
     specialization 
     'boost::fruchterman_reingold_force_directed_layout<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0, 
     2147483647, 399268537> >, boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS, 
     boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, boost::no_property, boost::no_property, 
     boost::listS>, boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *, 
     std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >, 
     boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned 
     long>, boost::simple_point<double>, boost::simple_point<double> &>, boost::square_distance_attractive_force, 
     boost::attractive_force_t, boost::no_property>' requested here 
    fruchterman_reingold_force_directed_layout 
^
test.cpp:48:3: note: in instantiation of function template specialization 
     'boost::fruchterman_reingold_force_directed_layout<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0, 
     2147483647, 399268537> >, boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS, 
     boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, boost::no_property, boost::no_property, 
     boost::listS>, boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *, 
     std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >, 
     boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned 
     long>, boost::simple_point<double>, boost::simple_point<double> &> >' requested here 
    fruchterman_reingold_force_directed_layout(g, position, topology); 
^
1 error generated. 

Répondre

0

Je ne peux jamais ni queue ni tête de code BGL soit: p Quand je ne besoin pour l'utiliser pour quelque chose, je vérifie habituellement le fichier unit-test/example inclus pour la fonction que je veux utiliser. Plusieurs fois, il y a un exemple qui peut être facilement modifié.

Questions connexes