diff --git a/INSTALL b/INSTALL --- a/INSTALL +++ b/INSTALL @@ -173,3 +173,25 @@ --without-coin Disable COIN-OR support. + + +Makefile Variables +================== + +Some Makefile variables are reserved by the GNU Coding Standards for +the use of the "user" - the person building the package. For instance, +CXX and CXXFLAGS are such variables, and have the same meaning as +explained in the previous section. These variables can be set on the +command line when invoking `make' like this: +`make [VARIABLE=VALUE]...' + +WARNINGCXXFLAGS is a non-standard Makefile variable introduced by us +to hold several compiler flags related to warnings. Its default value +can be overridden when invoking `make'. For example to disable all +warning flags use `make WARNINGCXXFLAGS='. + +In order to turn off a single flag from the default set of warning +flags, you can use the CXXFLAGS variable, since this is passed after +WARNINGCXXFLAGS. For example to turn off `-Wold-style-cast' (which is +used by default when g++ is detected) you can use +`make CXXFLAGS="-g -O2 -Wno-old-style-cast"'. diff --git a/lemon/bellman_ford.h b/lemon/bellman_ford.h --- a/lemon/bellman_ford.h +++ b/lemon/bellman_ford.h @@ -171,6 +171,11 @@ /// \tparam LEN A \ref concepts::ReadMap "readable" arc map that specifies /// the lengths of the arcs. The default map type is /// \ref concepts::Digraph::ArcMap "GR::ArcMap". + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref BellmanFordDefaultTraits + /// "BellmanFordDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. #ifdef DOXYGEN template #else @@ -933,6 +938,9 @@ /// /// This class should only be used through the \ref bellmanFord() /// function, which makes it easier to use the algorithm. + /// + /// \tparam TR The traits class that defines various types used by the + /// algorithm. template class BellmanFordWizard : public TR { typedef TR Base; diff --git a/lemon/bfs.h b/lemon/bfs.h --- a/lemon/bfs.h +++ b/lemon/bfs.h @@ -121,6 +121,11 @@ /// ///\tparam GR The type of the digraph the algorithm runs on. ///The default type is \ref ListDigraph. + ///\tparam TR The traits class that defines various types used by the + ///algorithm. By default, it is \ref BfsDefaultTraits + ///"BfsDefaultTraits". + ///In most cases, this parameter should not be set directly, + ///consider to use the named template parameters instead. #ifdef DOXYGEN template @@ -957,6 +962,9 @@ /// /// This class should only be used through the \ref bfs() function, /// which makes it easier to use the algorithm. + /// + /// \tparam TR The traits class that defines various types used by the + /// algorithm. template class BfsWizard : public TR { @@ -1295,11 +1303,11 @@ /// \ref BfsVisitor "BfsVisitor" is an empty visitor, which /// does not observe the BFS events. If you want to observe the BFS /// events, you should implement your own visitor class. - /// \tparam TR Traits class to set various data types used by the - /// algorithm. The default traits class is - /// \ref BfsVisitDefaultTraits "BfsVisitDefaultTraits". - /// See \ref BfsVisitDefaultTraits for the documentation of - /// a BFS visit traits class. + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref BfsVisitDefaultTraits + /// "BfsVisitDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. #ifdef DOXYGEN template #else diff --git a/lemon/capacity_scaling.h b/lemon/capacity_scaling.h --- a/lemon/capacity_scaling.h +++ b/lemon/capacity_scaling.h @@ -77,9 +77,14 @@ /// /// \tparam GR The digraph type the algorithm runs on. /// \tparam V The number type used for flow amounts, capacity bounds - /// and supply values in the algorithm. By default it is \c int. + /// and supply values in the algorithm. By default, it is \c int. /// \tparam C The number type used for costs and potentials in the - /// algorithm. By default it is the same as \c V. + /// algorithm. By default, it is the same as \c V. + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref CapacityScalingDefaultTraits + /// "CapacityScalingDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. /// /// \warning Both number types must be signed and all input data must /// be integer. diff --git a/lemon/circulation.h b/lemon/circulation.h --- a/lemon/circulation.h +++ b/lemon/circulation.h @@ -173,6 +173,11 @@ The default map type is \c LM. \tparam SM The type of the supply map. The default map type is \ref concepts::Digraph::NodeMap "GR::NodeMap". + \tparam TR The traits class that defines various types used by the + algorithm. By default, it is \ref CirculationDefaultTraits + "CirculationDefaultTraits". + In most cases, this parameter should not be set directly, + consider to use the named template parameters instead. */ #ifdef DOXYGEN template< typename GR, diff --git a/lemon/cost_scaling.h b/lemon/cost_scaling.h --- a/lemon/cost_scaling.h +++ b/lemon/cost_scaling.h @@ -104,9 +104,14 @@ /// /// \tparam GR The digraph type the algorithm runs on. /// \tparam V The number type used for flow amounts, capacity bounds - /// and supply values in the algorithm. By default it is \c int. + /// and supply values in the algorithm. By default, it is \c int. /// \tparam C The number type used for costs and potentials in the - /// algorithm. By default it is the same as \c V. + /// algorithm. By default, it is the same as \c V. + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref CostScalingDefaultTraits + /// "CostScalingDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. /// /// \warning Both number types must be signed and all input data must /// be integer. @@ -136,8 +141,7 @@ /// \brief The large cost type /// /// The large cost type used for internal computations. - /// Using the \ref CostScalingDefaultTraits "default traits class", - /// it is \c long \c long if the \c Cost type is integer, + /// By default, it is \c long \c long if the \c Cost type is integer, /// otherwise it is \c double. typedef typename TR::LargeCost LargeCost; diff --git a/lemon/dfs.h b/lemon/dfs.h --- a/lemon/dfs.h +++ b/lemon/dfs.h @@ -121,6 +121,11 @@ /// ///\tparam GR The type of the digraph the algorithm runs on. ///The default type is \ref ListDigraph. + ///\tparam TR The traits class that defines various types used by the + ///algorithm. By default, it is \ref DfsDefaultTraits + ///"DfsDefaultTraits". + ///In most cases, this parameter should not be set directly, + ///consider to use the named template parameters instead. #ifdef DOXYGEN template @@ -887,6 +892,9 @@ /// /// This class should only be used through the \ref dfs() function, /// which makes it easier to use the algorithm. + /// + /// \tparam TR The traits class that defines various types used by the + /// algorithm. template class DfsWizard : public TR { @@ -1237,11 +1245,11 @@ /// \ref DfsVisitor "DfsVisitor" is an empty visitor, which /// does not observe the DFS events. If you want to observe the DFS /// events, you should implement your own visitor class. - /// \tparam TR Traits class to set various data types used by the - /// algorithm. The default traits class is - /// \ref DfsVisitDefaultTraits "DfsVisitDefaultTraits". - /// See \ref DfsVisitDefaultTraits for the documentation of - /// a DFS visit traits class. + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref DfsVisitDefaultTraits + /// "DfsVisitDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. #ifdef DOXYGEN template #else diff --git a/lemon/dijkstra.h b/lemon/dijkstra.h --- a/lemon/dijkstra.h +++ b/lemon/dijkstra.h @@ -192,6 +192,11 @@ ///relatively time consuming process to compute the arc lengths if ///it is necessary. The default map type is \ref ///concepts::Digraph::ArcMap "GR::ArcMap". + ///\tparam TR The traits class that defines various types used by the + ///algorithm. By default, it is \ref DijkstraDefaultTraits + ///"DijkstraDefaultTraits". + ///In most cases, this parameter should not be set directly, + ///consider to use the named template parameters instead. #ifdef DOXYGEN template #else @@ -1092,6 +1097,9 @@ /// /// This class should only be used through the \ref dijkstra() function, /// which makes it easier to use the algorithm. + /// + /// \tparam TR The traits class that defines various types used by the + /// algorithm. template class DijkstraWizard : public TR { diff --git a/lemon/hartmann_orlin.h b/lemon/hartmann_orlin.h --- a/lemon/hartmann_orlin.h +++ b/lemon/hartmann_orlin.h @@ -106,6 +106,11 @@ /// \tparam GR The type of the digraph the algorithm runs on. /// \tparam LEN The type of the length map. The default /// map type is \ref concepts::Digraph::ArcMap "GR::ArcMap". + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref HartmannOrlinDefaultTraits + /// "HartmannOrlinDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. #ifdef DOXYGEN template #else @@ -127,8 +132,7 @@ /// \brief The large value type /// /// The large value type used for internal computations. - /// Using the \ref HartmannOrlinDefaultTraits "default traits class", - /// it is \c long \c long if the \c Value type is integer, + /// By default, it is \c long \c long if the \c Value type is integer, /// otherwise it is \c double. typedef typename TR::LargeValue LargeValue; diff --git a/lemon/howard.h b/lemon/howard.h --- a/lemon/howard.h +++ b/lemon/howard.h @@ -106,6 +106,11 @@ /// \tparam GR The type of the digraph the algorithm runs on. /// \tparam LEN The type of the length map. The default /// map type is \ref concepts::Digraph::ArcMap "GR::ArcMap". + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref HowardDefaultTraits + /// "HowardDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. #ifdef DOXYGEN template #else @@ -127,8 +132,7 @@ /// \brief The large value type /// /// The large value type used for internal computations. - /// Using the \ref HowardDefaultTraits "default traits class", - /// it is \c long \c long if the \c Value type is integer, + /// By default, it is \c long \c long if the \c Value type is integer, /// otherwise it is \c double. typedef typename TR::LargeValue LargeValue; diff --git a/lemon/karp.h b/lemon/karp.h --- a/lemon/karp.h +++ b/lemon/karp.h @@ -104,6 +104,11 @@ /// \tparam GR The type of the digraph the algorithm runs on. /// \tparam LEN The type of the length map. The default /// map type is \ref concepts::Digraph::ArcMap "GR::ArcMap". + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref KarpDefaultTraits + /// "KarpDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. #ifdef DOXYGEN template #else @@ -125,8 +130,7 @@ /// \brief The large value type /// /// The large value type used for internal computations. - /// Using the \ref KarpDefaultTraits "default traits class", - /// it is \c long \c long if the \c Value type is integer, + /// By default, it is \c long \c long if the \c Value type is integer, /// otherwise it is \c double. typedef typename TR::LargeValue LargeValue; diff --git a/lemon/min_cost_arborescence.h b/lemon/min_cost_arborescence.h --- a/lemon/min_cost_arborescence.h +++ b/lemon/min_cost_arborescence.h @@ -112,17 +112,18 @@ /// relatively time consuming process to compute the arc costs if /// it is necessary. The default map type is \ref /// concepts::Digraph::ArcMap "Digraph::ArcMap". - /// \param TR Traits class to set various data types used - /// by the algorithm. The default traits class is - /// \ref MinCostArborescenceDefaultTraits + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref MinCostArborescenceDefaultTraits /// "MinCostArborescenceDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. #ifndef DOXYGEN template , typename TR = MinCostArborescenceDefaultTraits > #else - template + template #endif class MinCostArborescence { public: diff --git a/lemon/preflow.h b/lemon/preflow.h --- a/lemon/preflow.h +++ b/lemon/preflow.h @@ -119,6 +119,11 @@ /// \tparam GR The type of the digraph the algorithm runs on. /// \tparam CAP The type of the capacity map. The default map /// type is \ref concepts::Digraph::ArcMap "GR::ArcMap". + /// \tparam TR The traits class that defines various types used by the + /// algorithm. By default, it is \ref PreflowDefaultTraits + /// "PreflowDefaultTraits". + /// In most cases, this parameter should not be set directly, + /// consider to use the named template parameters instead. #ifdef DOXYGEN template #else