📄 named_function_params.hpp
字号:
//=======================================================================
// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//=======================================================================
#ifndef BOOST_GRAPH_NAMED_FUNCTION_PARAMS_HPP
#define BOOST_GRAPH_NAMED_FUNCTION_PARAMS_HPP
#include <boost/graph/properties.hpp>
namespace boost {
struct distance_compare_t { };
struct distance_combine_t { };
struct distance_inf_t { };
struct distance_zero_t { };
struct buffer_param_t { };
struct edge_copy_t { };
struct vertex_copy_t { };
struct vertex_isomorphism_t { };
struct vertex_invariant_t { };
struct vertex_invariant1_t { };
struct vertex_invariant2_t { };
struct edge_compare_t { };
struct vertex_max_invariant_t { };
struct orig_to_copy_t { };
struct root_vertex_t { };
struct attractive_force_t { };
struct repulsive_force_t { };
struct force_pairs_t { };
struct cooling_t { };
struct vertex_displacement_t { };
struct iterations_t { };
struct diameter_range_t { };
struct learning_constant_range_t { };
namespace detail {
template <class T>
struct wrap_ref {
wrap_ref(T& r) : ref(r) {}
T& ref;
};
}
template <typename T, typename Tag, typename Base = no_property>
struct bgl_named_params : public Base
{
typedef bgl_named_params self;
typedef Base next_type;
typedef Tag tag_type;
typedef T value_type;
bgl_named_params(T v) : m_value(v) { }
bgl_named_params(T v, const Base& b) : Base(b), m_value(v) { }
T m_value;
template <typename WeightMap>
bgl_named_params<WeightMap, edge_weight_t, self>
weight_map(const WeightMap& pmap) const {
typedef bgl_named_params<WeightMap, edge_weight_t, self> Params;
return Params(pmap, *this);
}
template <typename WeightMap>
bgl_named_params<WeightMap, edge_weight2_t, self>
weight_map2(const WeightMap& pmap) const {
typedef bgl_named_params<WeightMap, edge_weight2_t, self> Params;
return Params(pmap, *this);
}
template <typename DistanceMap>
bgl_named_params<DistanceMap, vertex_distance_t, self>
distance_map(const DistanceMap& pmap) const {
typedef bgl_named_params<DistanceMap, vertex_distance_t, self> Params;
return Params(pmap, *this);
}
template <typename PredecessorMap>
bgl_named_params<PredecessorMap, vertex_predecessor_t, self>
predecessor_map(const PredecessorMap& pmap) const {
typedef bgl_named_params<PredecessorMap, vertex_predecessor_t, self>
Params;
return Params(pmap, *this);
}
template <typename RankMap>
bgl_named_params<RankMap, vertex_rank_t, self>
rank_map(const RankMap& pmap) const {
typedef bgl_named_params<RankMap, vertex_rank_t, self>
Params;
return Params(pmap, *this);
}
template <typename RootMap>
bgl_named_params<RootMap, vertex_root_t, self>
root_map(const RootMap& pmap) const {
typedef bgl_named_params<RootMap, vertex_root_t, self>
Params;
return Params(pmap, *this);
}
template <typename Vertex>
bgl_named_params<Vertex, root_vertex_t, self>
root_vertex(const Vertex& r) const {
typedef bgl_named_params<Vertex, root_vertex_t, self> Params;
return Params(r, *this);
}
template <typename EdgeCentralityMap>
bgl_named_params<EdgeCentralityMap, edge_centrality_t, self>
edge_centrality_map(const EdgeCentralityMap& r) const {
typedef bgl_named_params<EdgeCentralityMap, edge_centrality_t, self> Params;
return Params(r, *this);
}
template <typename CentralityMap>
bgl_named_params<CentralityMap, vertex_centrality_t, self>
centrality_map(const CentralityMap& r) const {
typedef bgl_named_params<CentralityMap, vertex_centrality_t, self> Params;
return Params(r, *this);
}
template <typename ColorMap>
bgl_named_params<ColorMap, vertex_color_t, self>
color_map(const ColorMap& pmap) const {
typedef bgl_named_params<ColorMap, vertex_color_t, self> Params;
return Params(pmap, *this);
}
template <typename ColorMap>
bgl_named_params<ColorMap, vertex_color_t, self>
vertex_color_map(const ColorMap& pmap) const {
typedef bgl_named_params<ColorMap, vertex_color_t, self> Params;
return Params(pmap, *this);
}
template <typename ColorMap>
bgl_named_params<ColorMap, edge_color_t, self>
edge_color_map(const ColorMap& pmap) const {
typedef bgl_named_params<ColorMap, edge_color_t, self> Params;
return Params(pmap, *this);
}
template <typename CapacityMap>
bgl_named_params<CapacityMap, edge_capacity_t, self>
capacity_map(CapacityMap pmap) {
typedef bgl_named_params<CapacityMap, edge_capacity_t, self> Params;
return Params(pmap, *this);
}
template <typename Residual_CapacityMap>
bgl_named_params<Residual_CapacityMap, edge_residual_capacity_t, self>
residual_capacity_map(Residual_CapacityMap pmap) {
typedef bgl_named_params<Residual_CapacityMap,
edge_residual_capacity_t, self>
Params;
return Params(pmap, *this);
}
template <typename ReverseMap>
bgl_named_params<ReverseMap, edge_reverse_t, self>
reverse_edge_map(ReverseMap pmap) {
typedef bgl_named_params<ReverseMap,
edge_reverse_t, self>
Params;
return Params(pmap, *this);
}
template <typename DiscoverTimeMap>
bgl_named_params<DiscoverTimeMap, vertex_discover_time_t, self>
discover_time_map(const DiscoverTimeMap& pmap) const {
typedef bgl_named_params<DiscoverTimeMap, vertex_discover_time_t, self>
Params;
return Params(pmap, *this);
}
template <typename LowPointMap>
bgl_named_params<LowPointMap, vertex_lowpoint_t, self>
lowpoint_map(const LowPointMap& pmap) const {
typedef bgl_named_params<LowPointMap, vertex_lowpoint_t, self>
Params;
return Params(pmap, *this);
}
template <typename IndexMap>
bgl_named_params<IndexMap, vertex_index_t, self>
vertex_index_map(const IndexMap& pmap) const {
typedef bgl_named_params<IndexMap, vertex_index_t, self> Params;
return Params(pmap, *this);
}
template <typename IndexMap>
bgl_named_params<IndexMap, vertex_index1_t, self>
vertex_index1_map(const IndexMap& pmap) const {
typedef bgl_named_params<IndexMap, vertex_index1_t, self> Params;
return Params(pmap, *this);
}
template <typename IndexMap>
bgl_named_params<IndexMap, vertex_index2_t, self>
vertex_index2_map(const IndexMap& pmap) const {
typedef bgl_named_params<IndexMap, vertex_index2_t, self> Params;
return Params(pmap, *this);
}
template <typename Visitor>
bgl_named_params<Visitor, graph_visitor_t, self>
visitor(const Visitor& vis) const {
typedef bgl_named_params<Visitor, graph_visitor_t, self> Params;
return Params(vis, *this);
}
template <typename Compare>
bgl_named_params<Compare, distance_compare_t, self>
distance_compare(Compare cmp) const {
typedef bgl_named_params<Compare, distance_compare_t, self> Params;
return Params(cmp, *this);
}
template <typename Combine>
bgl_named_params<Combine, distance_combine_t, self>
distance_combine(Combine cmb) const {
typedef bgl_named_params<Combine, distance_combine_t, self> Params;
return Params(cmb, *this);
}
template <typename Init>
bgl_named_params<Init, distance_inf_t, self>
distance_inf(Init init) const {
typedef bgl_named_params<Init, distance_inf_t, self> Params;
return Params(init, *this);
}
template <typename Init>
bgl_named_params<Init, distance_zero_t, self>
distance_zero(Init init) const {
typedef bgl_named_params<Init, distance_zero_t, self> Params;
return Params(init, *this);
}
template <typename Buffer>
bgl_named_params<detail::wrap_ref<Buffer>, buffer_param_t, self>
buffer(Buffer& b) const {
typedef bgl_named_params<detail::wrap_ref<Buffer>, buffer_param_t, self>
Params;
return Params(detail::wrap_ref<Buffer>(b), *this);
}
template <typename Copier>
bgl_named_params<Copier, edge_copy_t, self>
edge_copy(const Copier& c) const {
typedef bgl_named_params<Copier, edge_copy_t, self> Params;
return Params(c, *this);
}
template <typename Copier>
bgl_named_params<Copier, vertex_copy_t, self>
vertex_copy(const Copier& c) const {
typedef bgl_named_params<Copier, vertex_copy_t, self> Params;
return Params(c, *this);
}
template <typename Orig2CopyMap>
bgl_named_params<Orig2CopyMap, orig_to_copy_t, self>
orig_to_copy(const Orig2CopyMap& c) const {
typedef bgl_named_params<Orig2CopyMap, orig_to_copy_t, self> Params;
return Params(c, *this);
}
template <typename IsoMap>
bgl_named_params<IsoMap, vertex_isomorphism_t, self>
isomorphism_map(const IsoMap& c) const {
typedef bgl_named_params<IsoMap, vertex_isomorphism_t, self> Params;
return Params(c, *this);
}
template <typename VertexInvar>
bgl_named_params<VertexInvar, vertex_invariant_t, self>
vertex_invariant(const VertexInvar& c) const {
typedef bgl_named_params<VertexInvar, vertex_invariant_t, self> Params;
return Params(c, *this);
}
template <typename VertexDisplacement>
bgl_named_params<VertexDisplacement, vertex_displacement_t, self>
displacement_map(const VertexDisplacement& c) const {
typedef bgl_named_params<VertexDisplacement, vertex_displacement_t, self> Params;
return Params(c, *this);
}
template <typename AttractiveForce>
bgl_named_params<AttractiveForce, attractive_force_t, self>
attractive_force(const AttractiveForce& c) {
typedef bgl_named_params<AttractiveForce, attractive_force_t, self> Params;
return Params(c, *this);
}
template <typename RepulsiveForce>
bgl_named_params<RepulsiveForce, repulsive_force_t, self>
repulsive_force(const RepulsiveForce& c) {
typedef bgl_named_params<RepulsiveForce, repulsive_force_t, self> Params;
return Params(c, *this);
}
template <typename ForcePairs>
bgl_named_params<ForcePairs, force_pairs_t, self>
force_pairs(const ForcePairs& c) {
typedef bgl_named_params<ForcePairs, force_pairs_t, self> Params;
return Params(c, *this);
}
template <typename Cooling>
bgl_named_params<Cooling, cooling_t, self>
cooling(const Cooling& c) {
typedef bgl_named_params<Cooling, cooling_t, self> Params;
return Params(c, *this);
}
template <typename TP>
bgl_named_params<TP, iterations_t, self>
iterations(const TP& c) {
typedef bgl_named_params<TP, iterations_t, self> Params;
return Params(c, *this);
}
template<typename TP>
bgl_named_params<std::pair<TP, TP>, diameter_range_t, self>
diameter_range(const std::pair<TP, TP>& c) {
typedef bgl_named_params<std::pair<TP, TP>, diameter_range_t, self> Params;
return Params(c, *this);
}
template<typename TP>
bgl_named_params<std::pair<TP, TP>, learning_constant_range_t, self>
learning_constant_range(const std::pair<TP, TP>& c) {
typedef bgl_named_params<std::pair<TP, TP>, learning_constant_range_t, self>
Params;
return Params(c, *this);
}
};
template <typename WeightMap>
bgl_named_params<WeightMap, edge_weight_t>
weight_map(WeightMap pmap) {
typedef bgl_named_params<WeightMap, edge_weight_t> Params;
return Params(pmap);
}
template <typename WeightMap>
bgl_named_params<WeightMap, edge_weight2_t>
weight_map2(WeightMap pmap) {
typedef bgl_named_params<WeightMap, edge_weight2_t> Params;
return Params(pmap);
}
template <typename DistanceMap>
bgl_named_params<DistanceMap, vertex_distance_t>
distance_map(DistanceMap pmap) {
typedef bgl_named_params<DistanceMap, vertex_distance_t> Params;
return Params(pmap);
}
template <typename PredecessorMap>
bgl_named_params<PredecessorMap, vertex_predecessor_t>
predecessor_map(PredecessorMap pmap) {
typedef bgl_named_params<PredecessorMap, vertex_predecessor_t> Params;
return Params(pmap);
}
template <typename RankMap>
bgl_named_params<RankMap, vertex_rank_t>
rank_map(RankMap pmap) {
typedef bgl_named_params<RankMap, vertex_rank_t> Params;
return Params(pmap);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -