Files

66 lines
1.4 KiB
C++
Raw Permalink Normal View History

2006-08-16 16:50:52 +00:00
/*=============================================================================
2011-09-16 05:30:23 +00:00
Copyright (c) 2001-2011 Joel de Guzman
2006-08-16 16:50:52 +00:00
Distributed under the Boost Software License, Version 1.0. (See accompanying
2007-03-02 10:44:14 +00:00
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
2006-08-16 16:50:52 +00:00
==============================================================================*/
#if !defined(FUSION_ACCESS_04182005_0737)
#define FUSION_ACCESS_04182005_0737
2014-01-09 17:58:06 -08:00
#include <boost/fusion/support/config.hpp>
2006-08-16 16:50:52 +00:00
#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;
2006-08-16 16:50:52 +00:00
};
template <typename T>
struct cref_result
{
typedef typename
2006-08-16 16:50:52 +00:00
add_reference<
typename add_const<T>::type
>::type
2006-08-16 16:50:52 +00:00
type;
};
template <typename T>
2009-06-02 05:46:21 +00:00
struct call_param
2006-08-16 16:50:52 +00:00
{
2009-06-02 05:46:21 +00:00
typedef T const& type;
2006-08-16 16:50:52 +00:00
};
template <typename T>
struct call_param<T&>
2006-08-16 16:50:52 +00:00
{
2009-06-02 05:46:21 +00:00
typedef T& type;
2006-08-16 16:50:52 +00:00
};
2009-06-02 05:46:21 +00:00
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;
};
2006-08-16 16:50:52 +00:00
}}}
#endif