/*============================================================================= Copyright (c) 2003 Joel de Guzman Use, modification and distribution is subject to 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) ==============================================================================*/ #if !defined(FUSION_SEQUENCE_DETAIL_TUPLE_AT_TRAITS_HPP) #define FUSION_SEQUENCE_DETAIL_TUPLE_AT_TRAITS_HPP #include #include #include namespace boost { namespace fusion { struct tuple_tag; namespace detail { template struct tuple_access; } namespace detail { template struct tuple_at_impl { typedef BOOST_DEDUCED_TYPENAME boost::fusion::detail::tuple_access_result::type type; static type call(Sequence& t); }; template inline typename tuple_at_impl::type tuple_at_impl::call(Sequence& t) { return detail::tuple_access::get(t); } } namespace meta { template struct at_impl; template <> struct at_impl { template struct apply : detail::tuple_at_impl {}; }; } }} #endif