>> I need to convert any bidirectional graph into an

>> adjacency_list<vecS,vecS,directedS>,

>> but looks like the copy constructor cannot handle it (needs the same type in input).

>> I don't see any simple way to convert any directed graph into an adjacency_list<vecS,vecS,directedS>.

>> Is there any more-or-less-simple way to do it that I don't know? May be there is a way to copy graphs constrained not by the concrete type of the graph,

>> but only, may be, on graph concepts?

>> Thanks,

>

> There's no direct conversion between *any* bidirectional graph and a directed adjancency_list. If you're talking about any bidirectional adjacency list and a directed one, you shouldn't actually need to convert them.

>

> As an alternative, you could use copy_graph.

>

I need to do a copy of the graph before writing it into graphml or graphviz as a workaround

for the problem I reported with subject

[graph] Looks like there is a bug in some graph-writing function

, which in my second message with the same subject I clarified the problem was related with

creating dynamic_properties from bundled properties. It doesn't work with const graphs

and I don't trust just performing a const_cast. I want to make sure that the input graph to

my graph-writing functions is not modified at all.

One solution would be just to do

Graph *copy=new Graph(graph);

where Graph is the graph-type template parameter, but this would require Graph to model

Assignable, and I don't want to impose that. Also, copying the graph into a directed

(not bidirectional) adjacency_list will save memory.

copy_graph is perfect for my needs, as graph-writing boost functions already require the graph

to model VertexListGraph (and, in general, the code I'm developing too).

Sorry for not remembering about copy_graph and thank you very much :)

Juan