From 21d676dd87e903bbe27aa10dbbeb9d3d761aa558 Mon Sep 17 00:00:00 2001 From: Christopher Schmidt Date: Sat, 2 Oct 2010 18:39:23 +0000 Subject: [PATCH] Fusion: added adt_attribute_proxy-getter [SVN r65728] --- .../fusion/adapted/adt/detail/adapt_base.hpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/include/boost/fusion/adapted/adt/detail/adapt_base.hpp b/include/boost/fusion/adapted/adt/detail/adapt_base.hpp index 0a21aa1f..55fc7c2b 100644 --- a/include/boost/fusion/adapted/adt/detail/adapt_base.hpp +++ b/include/boost/fusion/adapted/adt/detail/adapt_base.hpp @@ -25,7 +25,7 @@ #define BOOST_FUSION_ADAPT_ADT_GET_IDENTITY_NON_TEMPLATE_IMPL( \ TEMPLATE_PARAMS_SEQ) \ \ - lvalue + remove_const::type>::type #define BOOST_FUSION_ADAPT_ADT_C_BASE( \ TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE) \ @@ -79,7 +79,7 @@ : obj(o) \ {} \ \ - operator type() const \ + type get() const \ { \ return access::adt_attribute_access< \ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \ @@ -87,6 +87,11 @@ >::boost_fusion_adapt_adt_impl_get(*obj); \ } \ \ + operator type() const \ + { \ + return get(); \ + } \ + \ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const* obj; \ }; \ \ @@ -118,7 +123,7 @@ return *this; \ } \ \ - operator type() const \ + type get() const \ { \ return access::adt_attribute_access< \ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \ @@ -126,6 +131,11 @@ >::boost_fusion_adapt_adt_impl_get(*obj); \ } \ \ + operator type() const \ + { \ + return get(); \ + } \ + \ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)* obj; \ }; \ \