diff options
Diffstat (limited to 'boost/fusion/adapted/adt/detail/extension.hpp')
-rw-r--r-- | boost/fusion/adapted/adt/detail/extension.hpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/boost/fusion/adapted/adt/detail/extension.hpp b/boost/fusion/adapted/adt/detail/extension.hpp index 50c40cf34e..2f4db4dd09 100644 --- a/boost/fusion/adapted/adt/detail/extension.hpp +++ b/boost/fusion/adapted/adt/detail/extension.hpp @@ -12,13 +12,28 @@ #include <boost/type_traits/remove_const.hpp> #include <boost/type_traits/remove_reference.hpp> +#include <boost/fusion/support/as_const.hpp> +#include <boost/fusion/adapted/struct/detail/extension.hpp> -namespace boost { namespace fusion { namespace detail -{ +namespace boost { namespace fusion +{ + namespace detail + { template <typename T, typename Dummy> struct get_identity : remove_const<typename remove_reference<T>::type> {}; -}}} + } + + namespace extension + { + // Overload as_const() to unwrap adt_attribute_proxy. + template <typename T, int N, bool Const> + typename adt_attribute_proxy<T, N, Const>::type as_const(const adt_attribute_proxy<T, N, Const>& proxy) + { + return proxy.get(); + } + } +}} #endif |