Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-11-16 09:12:23

0001 /*=============================================================================
0002     Copyright (c) 2001-2011 Joel de Guzman
0003 
0004     Distributed under the Boost Software License, Version 1.0. (See accompanying
0005     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 ==============================================================================*/
0007 #if !defined(FUSION_ACCESS_04182005_0737)
0008 #define FUSION_ACCESS_04182005_0737
0009 
0010 #include <boost/fusion/support/config.hpp>
0011 #include <boost/type_traits/add_const.hpp>
0012 #include <boost/type_traits/add_reference.hpp>
0013 
0014 namespace boost { namespace fusion { namespace detail
0015 {
0016     template <typename T>
0017     struct ref_result
0018     {
0019         typedef typename add_reference<T>::type type;
0020     };
0021 
0022     template <typename T>
0023     struct cref_result
0024     {
0025         typedef typename
0026             add_reference<
0027                 typename add_const<T>::type
0028             >::type
0029         type;
0030     };
0031 
0032     template <typename T>
0033     struct call_param
0034     {
0035         typedef T const& type;
0036     };
0037 
0038     template <typename T>
0039     struct call_param<T&>
0040     {
0041         typedef T& type;
0042     };
0043 
0044     template <typename T>
0045     struct call_param<T const>
0046     {
0047         typedef T const& type;
0048     };
0049 
0050     template <typename T>
0051     struct call_param<T volatile>
0052     {
0053         typedef T const& type;
0054     };
0055 
0056     template <typename T>
0057     struct call_param<T const volatile>
0058     {
0059         typedef T const& type;
0060     };
0061 
0062 }}}
0063 
0064 #endif
0065