1 /*============================================================================= 2 Copyright (c) 2001-2011 Joel de Guzman 3 Copyright (c) 2005-2006 Dan Marsden 4 Copyright (c) 2009-2010 Christopher Schmidt 5 6 Distributed under the Boost Software License, Version 1.0. (See accompanying 7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 8 ==============================================================================*/ 9 10 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_AT_IMPL_HPP 11 #define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_AT_IMPL_HPP 12 13 #include <boost/fusion/support/config.hpp> 14 #include <boost/mpl/int.hpp> 15 16 namespace boost { namespace fusion { namespace extension 17 { 18 template<typename> 19 struct at_impl; 20 21 template <> 22 struct at_impl<struct_tag> 23 { 24 template <typename Seq, typename N> 25 struct apply 26 : access::struct_member< 27 typename remove_const<Seq>::type 28 , N::value 29 >::template apply<Seq> 30 {}; 31 }; 32 33 template <> 34 struct at_impl<assoc_struct_tag> 35 : at_impl<struct_tag> 36 {}; 37 }}} 38 39 #endif 40