Chris@16: /*============================================================================= Chris@16: Copyright (c) 2001-2009 Joel de Guzman Chris@16: Copyright (c) 2005-2006 Dan Marsden Chris@16: Copyright (c) 2010 Christopher Schmidt 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: Chris@16: #ifndef BOOST_FUSION_ADAPTED_ADT_DETAIL_EXTENSION_HPP Chris@16: #define BOOST_FUSION_ADAPTED_ADT_DETAIL_EXTENSION_HPP Chris@16: Chris@101: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost { namespace fusion Chris@101: { Chris@16: namespace detail Chris@16: { Chris@101: template Chris@101: struct get_identity Chris@101: : remove_const::type> Chris@101: {}; Chris@16: } Chris@101: Chris@16: namespace extension Chris@16: { Chris@16: // Overload as_const() to unwrap adt_attribute_proxy. Chris@16: template Chris@101: BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED Chris@16: typename adt_attribute_proxy::type as_const(const adt_attribute_proxy& proxy) Chris@16: { Chris@16: return proxy.get(); Chris@16: } Chris@16: } Chris@16: }} Chris@16: Chris@16: #endif