Обнаружена ошибка: формируется ссылка на void при использовании write_graphviz? - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь визуализировать график с определенными пользователем типами вершин и ребер.Мой тип вершины - это вектор phase_t, в то время как мой тип ребра помечен определенными правилами, как определено в следующем коде ниже.

#include <boost/graph/adj_list_serialize.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/property_map/function_property_map.hpp>
#include <vector>

using namespace boost;
using namespace std;

class phase_t {
    public :
        unsigned int bench_id;
        unsigned int alloc;
        phase_t();
        phase_t(unsigned int bench_id,unsigned int alloc);
};
phase_t::phase_t(unsigned int bench_id,unsigned int alloc) : bench_id{bench_id}, alloc{alloc} {}
phase_t::phase_t() : bench_id{0}, alloc{0} {}
enum  RulesEdgeType {RULE1,RULE2,RULE3,RULE4};

typedef vector<phase_t>  alloc2_t;
typedef adjacency_list<setS,setS,directedS,alloc2_t,RulesEdgeType> Graph;

int main() {
    Graph g;
    // Then fill the graph
    add_edge(
        add_vertex(alloc2_t{phase_t(0,1),phase_t(0,2),phase_t(0,4)}, g),
        add_vertex(alloc2_t{phase_t(0,3),phase_t(0,6),phase_t(0,7)}, g),
        RULE1, g
    );

    write_graphviz(std::cout, g);
}

Однако вызов write_graphviz () заканчивается длинным списком ошибок, который обобщен ниже.

tmp3.cpp:40:32:   required from here
/usr/include/boost/graph/detail/adjacency_list.hpp:2543:29: error: forming reference to void
         typedef value_type& reference;
                             ^
/usr/include/boost/graph/detail/adjacency_list.hpp:2544:35: error: forming reference to void
         typedef const value_type& const_reference;
                                   ^
/usr/include/boost/graph/detail/adjacency_list.hpp:2547:47: error: forming reference to void
           <Graph, value_type, reference, Tag> type;
                                               ^
/usr/include/boost/graph/detail/adjacency_list.hpp:2549:53: error: forming reference to void
           <Graph, value_type, const_reference, Tag> const_type;

Строка 40 соответствует вызову write_graphviz ().Я довольно новый, чтобы повысить, и любая помощь очень ценится.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...