From 1cdce524a208631e15bf2ad4b01d9630109206e8 Mon Sep 17 00:00:00 2001 From: Jeremiah Willcock Date: Fri, 27 Jul 2012 18:15:55 +0000 Subject: [PATCH] Merged r79227 from trunk, hopefully fixing all VC++ Boost.Graph Graphviz test issues [SVN r79771] --- include/boost/pending/property.hpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/include/boost/pending/property.hpp b/include/boost/pending/property.hpp index 93b3cd84..93ebffbf 100644 --- a/include/boost/pending/property.hpp +++ b/include/boost/pending/property.hpp @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -29,10 +30,19 @@ namespace boost { }; // Kinds of properties + namespace graph_introspect_detail { + BOOST_MPL_HAS_XXX_TRAIT_DEF(kind) + template struct get_kind {typedef void type;}; + template struct get_kind {typedef typename T::kind type;}; + } + + // Having a default is to make this trait work for any type, not just valid + // properties, to work around VC++ <= 10 bugs related to SFINAE in + // compressed_sparse_row_graph's get functions and similar template - struct property_kind { - typedef typename PropertyTag::kind type; - }; + struct property_kind: + graph_introspect_detail::get_kind::value> + {}; // Some standard properties defined independently of Boost.Graph: enum vertex_all_t {vertex_all};