Boost logo

Boost Users :

Subject: Re: [Boost-users] BGL new graph type implementation trouble
From: Andrew Sutton (andrew.n.sutton_at_[hidden])
Date: 2009-09-02 08:01:50


> Now I am facing another problem: Is it possible to read of via graph_traits
> somehow at compile time if the underlying graph type is mutable or not?
> Depending on this I would like to change the compiled code. The concept
> stuff is not the right thing here as it would stop compilation, but I want
> to make a function call dispatch depending upon mutability. I only found the
> traversal stuff in the traits-classes so I guess a trick is needed here.
> Shouldn't graph_traits include some tag which converts to the implemented
> concepts of the graph? This is what I was looking for, but well, it is not
> there.
>

I'll assume you aren't talking about const/non-const since that can be done
with an overload.

As a matter of fact, there is. I added a framework for compile-time
mutability properties of graphs that (kind of) parallels the mutability
concepts (in graph_concepts, not the documentation), Basically, it assigns
tag classes to graphs based on their ability to add and remove vertices and
edges with or without properties.

You can specialize the graph_mutability_traits for your derived type. There
are also a number of metafunctions, graph_has_remove_vertex and
is_mutable_graph.

The mutability traits aren't actually used outside the BGL tests. They could
be, but there aren't really that many generic mutating algorithms.

Naturally, it's all undocumented :)

> Thanks for the hint of the quickbook documents in the trunk - I went
> through the process of generating the docs and there is a slight typo in the
> qbk-files: It fails to compile the stuff since it assumes the examples to be
> in the directory examples, but they are in the example (singular) directory.
> A symlink solved it for me, but it ought to be corrected.
>

Still working on it. I think I merged all of the quickbook examples into the
example directory and forgot to update the links.

> Still the vertex_all stuff would be nice to know about. Any hint would be
> great.
>

I'll look into it.

Andrew Sutton
andrew.n.sutton_at_[hidden]



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net