Chris@16: /*============================================================================= Chris@16: Copyright (c) 2012 Nathan Ridge Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: ==============================================================================*/ Chris@16: #ifndef BOOST_FUSION_SUPPORT_AS_CONST_HPP Chris@16: #define BOOST_FUSION_SUPPORT_AS_CONST_HPP Chris@16: Chris@101: #include Chris@101: #include Chris@101: Chris@16: namespace boost { namespace fusion { namespace extension Chris@16: { Chris@16: // A customization point that allows certain wrappers around Chris@16: // Fusion sequence elements (e.g. adt_attribute_proxy) to be Chris@16: // unwrapped in contexts where the element only needs to be Chris@16: // read. The library wraps accesses to Fusion elements in Chris@16: // such contexts with calls to this function. Users can Chris@16: // specialize this function for their own wrappers. Chris@16: template Chris@101: BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED Chris@101: inline const T& as_const(const T& obj) BOOST_NOEXCEPT Chris@16: { Chris@16: return obj; Chris@16: } Chris@16: Chris@16: }}} Chris@16: Chris@16: #endif