Opened 17 years ago
Closed 17 years ago
#511 closed Bugs (Duplicate)
predicates without default constructor fail to compile
| Reported by: | nobody | Owned by: | nobody |
|---|---|---|---|
| Milestone: | Component: | graph | |
| Version: | None | Severity: | |
| Keywords: | Cc: |
Description
I want to draw your attention to a possible flaw in the
implementation of the write_graphviz method from the
Boost Graph Library.
The current implementation uses the assignment
operator for the vertex and edge iterators. This is natural,
but some examples fail to compile with
this version. The problem comes from the predicates
witch don't have default constructors.
When trying to assign a vertex iterator of a graph
filtered with such a predicate, the compiler issues an
error:
C2512:'positive_edge_weight_pred<MyEdgeWeightMap>'
: no appropriate default constructor available
with
[
MyEdgeWeightMap=EdgeWeightMapT
]
If a small modification in the write_graphviz
implementation is made (using copy constructors
instead of assignement operators), the example
compiles and runs sucesfully. I am using the Microsoft
Visual C++ 7.1 compiler.
In conclusion, I think that this modification should be
made, as it grows the flexibility of the library and doesn't
add any overhead.
I have attached the example (main.cpp) and the patch
for graphviz.hpp (graphviz.hpp.patch).
My e-mail adress is pdumitrache@bphx.ro
Note:
See TracTickets
for help on using tickets.
