How do I declare a graph that does not allow parallel edges?


I have come up with this but IMO it is sort of, well, kludgey:

typedef adjacency_list<setS, vecS, bidirectionalS> Graph;

This works because std::set does not like multiple entries.

But what if for performance reasons (say) I want a listS or vecS instead of setS?

In adjacency_list.hpp I find:
template <>
  struct parallel_edge_traits<setS> {
    typedef disallow_parallel_edge_tag type; };

Which suggest the existence of a more elegant mechanism.

Anybody know what that is?

Eric