1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /*=============================================================================
- 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
|