Sto provando ad usare la libreria del grafico boost, e sto ottenendo un segfault quando provo a usare boost :: edge(). Il codice completo è disponibile here, ma qui ho fatto un programma minimo che ha lo stesso problema (sto compilazione con "g ++ minimal.cpp"):boost :: edge che causa segfault
#include<stdio.h>
#include<boost/graph/adjacency_list.hpp>
using namespace boost;
using namespace std;
typedef adjacency_list<> graph_t;
typedef graph_traits<graph_t>::edge_descriptor edge_descriptor;
int main(){
graph_t G;
//add_edge(1,3,G);
//remove_edge(1,3,G);
pair<edge_descriptor, bool> res = edge(1,3,G);
printf("G does %shave an edge 1->3\n", res.second ? "" : "not ");
return 0;
}
Se togliere il commento alla add_edge, linee remove_edge , il segfault non si verifica, e il programma stampa l'atteso
G does not have an edge 1->3
, ma c'è un modo per evitare tale aggiustamenti? Grazie!
Questo sembra un po 'come un insetto. Potresti voler farlo apparire sulla [Mailing list di Boost-Devel] (http://news.gmane.org/gmane.comp.lib.boost.devel) se non riesci a ottenere una risposta adeguata su Stackoverflow. – Mankarse