/Src/Dependencies/Boost/boost/fusion/support/detail/access.hpp
http://hadesmem.googlecode.com/ · C++ Header · 64 lines · 47 code · 11 blank · 6 comment · 0 complexity · b8f080637ee9d65df30fbf2e7b8704bd MD5 · raw file
- /*=============================================================================
- Copyright (c) 2001-2006 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/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<typename T::type>::type type;
- };
- template <typename T>
- struct cref_result
- {
- typedef typename
- add_reference<
- typename add_const<typename T::type>::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