This guide gives an in depth description on what has changed compared to the 0.x release series.
Many of these changes adjusted automatically by the lemon-0.x-to-1.x.sh
tool. Those requiring manual update are typeset boldface.
Digraph
and they have Arc
s (instead of Edge
s), while undirected graphs are called Graph
(instead of UGraph
) and they have Edge
s (instead of UEdge
s). These changes reflected thoroughly everywhere in the library. Namely,Graph
-> Digraph
ListGraph
-> ListDigraph
, SmartGraph
-> SmartDigraph
etc.UGraph
-> Graph
ListUGraph
-> ListGraph
, SmartUGraph
-> SmartGraph
etc.Edge
-> Arc
, UEdge
-> Edge
EdgeMap
-> ArcMap
, UEdgeMap
-> EdgeMap
EdgeIt
-> ArcIt
, UEdgeIt
-> EdgeIt
graph
, ugraph
, edge or arc should also be updated.Edge
can be obtained by the u()
and v()
member function of the graph (instead of source()
and target()
). This change must be done by hand. source()
and target()
for Arc
s (directed edges).lemon-0.x-to-1.x.sh
script replaces the words graph
, ugraph
, edge
and uedge
in your own identifiers and in strings, comments etc. as well as in all LEMON specific identifiers. So use the script carefully and make a backup copy of your source files before applying the script to them.@nodeset
has changed to @nodes
, @edgeset
and @uedgeset
to @arcs
or @edges
, which become completely equivalents. The @nodes
, @edges
and @uedges
sections are removed from the format, the content of them should be the part of @attributes
section. The data fields in the sections must follow a strict format, they must be either character sequences without whitespaces or quoted strings.LemonReader
and LemonWriter
core interfaces are no longer available.read
or write
prefix of the member functions are removed.digraphReader
and digraphWriter
functions are more convenient than using the classes directly.run()
function (instead of bfs()
, dfs()
or dijkstra()
itself).Bfs
, Dfs
, Dijkstra
, BfsVisit
, DfsVisit
are renamed to start with "Set" instead of "Def". Namely,DefPredMap
-> SetPredMap
DefDistMap
-> SetDistMap
DefReachedMap
-> SetReachedMap
DefProcessedMap
-> SetProcessedMap
DefHeap
-> SetHeap
DefStandardHeap
-> SetStandardHeap
DefOperationTraits
-> SetOperationTraits
DefProcessedMapToBeDefaultMap
-> SetStandardProcessedMap
The class hierarchy of exceptions has largely been simplified. Now, only the i/o related tools may throw exceptions. All other exceptions have been replaced with either the LEMON_ASSERT
or the LEMON_DEBUG
macros.
On the other hand, the parameter order of constructors of the exceptions has been changed. See IoError and FormatError for more details.
graph_utils.h
are moved to core.h
and maps.h
. core.h
is included by all graph types, therefore it usually do not have to be included directly.path_utils.h
is merged to path.h
.GraphCopy
, DigraphCopy
) have to be given in the from-to order.copyDigraph()
and copyGraph()
are renamed to digraphCopy()
and graphCopy()
, respectively.IntegerMap
-> RangeMap
StdMap
-> SparseMap
FunctorMap
-> FunctorToMap
MapFunctor
-> MapToFunctor
ForkWriteMap
-> ForkMap
StoreBoolMap
-> LoggerBoolMap
dim2::BoundingBox
-> dim2::Box