diff options
Diffstat (limited to 'src/third_party/boost-1.56.0/boost/fusion/support/detail/access.hpp')
-rw-r--r-- | src/third_party/boost-1.56.0/boost/fusion/support/detail/access.hpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/third_party/boost-1.56.0/boost/fusion/support/detail/access.hpp b/src/third_party/boost-1.56.0/boost/fusion/support/detail/access.hpp new file mode 100644 index 00000000000..ab88538314c --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/support/detail/access.hpp @@ -0,0 +1,65 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) +==============================================================================*/ +#if !defined(FUSION_ACCESS_04182005_0737) +#define FUSION_ACCESS_04182005_0737 + +#include <boost/fusion/support/config.hpp> +#include <boost/type_traits/add_const.hpp> +#include <boost/type_traits/add_reference.hpp> + +namespace boost { namespace fusion { namespace detail +{ + template <typename T> + struct ref_result + { + typedef typename add_reference<T>::type type; + }; + + template <typename T> + struct cref_result + { + typedef typename + add_reference< + typename add_const<T>::type + >::type + type; + }; + + template <typename T> + struct call_param + { + typedef T const& type; + }; + + template <typename T> + struct call_param<T&> + { + typedef T& type; + }; + + template <typename T> + struct call_param<T const> + { + typedef T const& type; + }; + + template <typename T> + struct call_param<T volatile> + { + typedef T const& type; + }; + + template <typename T> + struct call_param<T const volatile> + { + typedef T const& type; + }; + +}}} + +#endif + |