Chris@16: /*============================================================================= Chris@16: Copyright (c) 2006-2007 Tobias Schwinger Chris@16: Chris@16: Use modification and distribution are subject to the Boost Software Chris@16: License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at Chris@16: http://www.boost.org/LICENSE_1_0.txt). Chris@16: ==============================================================================*/ Chris@16: Chris@16: #if !defined(BOOST_FUSION_FUNCTIONAL_ADAPTER_DETAIL_ACCESS_HPP_INCLUDED) Chris@16: #define BOOST_FUSION_FUNCTIONAL_ADAPTER_DETAIL_ACCESS_HPP_INCLUDED Chris@16: Chris@16: namespace boost { namespace fusion { namespace detail Chris@16: { Chris@16: // const reference deduction for function templates that accept T const & Chris@16: template struct cref { typedef T const& type; }; Chris@16: template struct cref { typedef T const& type; }; Chris@16: template struct cref { typedef T const& type; }; Chris@16: Chris@16: // mutable reference deduction for function templates that accept T & Chris@16: template struct mref { typedef T & type; }; Chris@16: template struct mref { typedef T & type; }; Chris@16: Chris@16: // generic reference deduction for function templates that are overloaded Chris@16: // to accept both T const & and T & Chris@16: template struct gref { typedef T const& type; }; Chris@16: template struct gref { typedef T & type; }; Chris@16: template struct gref { typedef T const& type; }; Chris@16: Chris@16: // appropriately qualified target function in const context Chris@16: template struct qf_c { typedef T const type; }; Chris@16: template struct qf_c { typedef T const type; }; Chris@16: template struct qf_c { typedef T type; }; Chris@16: Chris@16: // appropriately qualified target function in non-const context Chris@16: template struct qf { typedef T type; }; Chris@16: template struct qf { typedef T const type; }; Chris@16: template struct qf { typedef T type; }; Chris@16: }}} Chris@16: Chris@16: #endif Chris@16: