/*============================================================================= Copyright (c) 2014 Kohei Takahashi Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #ifndef FUSION_VALUE_AT_IMPL_16122014_1641 #define FUSION_VALUE_AT_IMPL_16122014_1641 #include #include #include /////////////////////////////////////////////////////////////////////////////// // Without variadics, we will use the PP version /////////////////////////////////////////////////////////////////////////////// #if !defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) # include #else /////////////////////////////////////////////////////////////////////////////// // C++11 interface /////////////////////////////////////////////////////////////////////////////// #include #include namespace boost { namespace fusion { struct vector_tag; namespace vector_detail { template struct store; template static inline BOOST_FUSION_GPU_ENABLED U value_at_impl(store const volatile*); } namespace extension { template struct value_at_impl; template <> struct value_at_impl { template struct apply { typedef decltype(vector_detail::value_at_impl(boost::declval())) type; }; }; } }} #endif #endif