2
0
mirror of https://github.com/boostorg/graph.git synced 2026-02-01 20:42:11 +00:00

Merged r55265, r55266, r55355, and r55356 from trunk, hopefully fixing VC++ problems; removed VC++ from csr_graph_test known failures for regression tests

[SVN r55357]
This commit is contained in:
Jeremiah Willcock
2009-08-02 02:46:12 +00:00
parent 4af9462b74
commit a1d6cf2106

View File

@@ -1687,27 +1687,23 @@ get(const csr_edge_index_map<Index, Descriptor>&,
return key.idx;
}
// Doing the right thing here (by unifying with vertex_index_t and
// edge_index_t) breaks GCC.
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS, typename Tag>
struct property_map<BOOST_CSR_GRAPH_TYPE, Tag>
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
struct property_map<BOOST_CSR_GRAPH_TYPE, vertex_index_t>
{
typedef identity_property_map type;
typedef type const_type;
};
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
struct property_map<BOOST_CSR_GRAPH_TYPE, edge_index_t>
{
private:
typedef identity_property_map vertex_index_type;
typedef typename graph_traits<BOOST_CSR_GRAPH_TYPE>::edge_descriptor
edge_descriptor;
typedef csr_edge_index_map<EdgeIndex, edge_descriptor> edge_index_type;
typedef typename mpl::if_<is_same<Tag, edge_index_t>,
edge_index_type,
detail::error_property_not_found>::type
edge_or_none;
public:
typedef typename mpl::if_<is_same<Tag, vertex_index_t>,
vertex_index_type,
edge_or_none>::type type;
typedef edge_index_type type;
typedef type const_type;
};
@@ -1743,26 +1739,6 @@ get(edge_index_t, const BOOST_CSR_GRAPH_TYPE&,
return e.idx;
}
// Support for bundled properties
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS, typename T, typename Bundle>
struct property_map<BOOST_CSR_GRAPH_TYPE, T Bundle::*>
{
private:
typedef graph_traits<BOOST_CSR_GRAPH_TYPE> traits;
typedef VertexProperty vertex_bundled;
typedef EdgeProperty edge_bundled;
typedef typename mpl::if_c<(detail::is_vertex_bundle<vertex_bundled, edge_bundled, Bundle>::value),
typename traits::vertex_descriptor,
typename traits::edge_descriptor>::type
descriptor;
public:
typedef bundle_property_map<BOOST_CSR_GRAPH_TYPE, descriptor, Bundle, T>
type;
typedef bundle_property_map<const BOOST_CSR_GRAPH_TYPE, descriptor, Bundle,
const T> const_type;
};
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS, typename T, typename Bundle>
inline
typename property_map<BOOST_CSR_GRAPH_TYPE, T Bundle::*>::type