File indexing completed on 2025-01-18 09:33:20
0001
0002
0003
0004
0005
0006
0007 #if !defined(FUSION_VALUE_AT_IMPL_07172005_0952)
0008 #define FUSION_VALUE_AT_IMPL_07172005_0952
0009
0010 #include <boost/fusion/support/config.hpp>
0011 #include <boost/fusion/support/detail/access.hpp>
0012 #include <boost/type_traits/is_const.hpp>
0013 #include <boost/mpl/eval_if.hpp>
0014 #include <boost/mpl/bool.hpp>
0015
0016 namespace boost { namespace fusion
0017 {
0018 struct cons_tag;
0019
0020 namespace extension
0021 {
0022 template <typename Tag>
0023 struct value_at_impl;
0024
0025 template <>
0026 struct value_at_impl<cons_tag>
0027 {
0028 template <typename Sequence, typename N>
0029 struct apply
0030 {
0031 typedef typename
0032 mpl::eval_if<
0033 mpl::bool_<N::value == 0>
0034 , mpl::identity<typename Sequence::car_type>
0035 , apply<typename Sequence::cdr_type, mpl::int_<N::value-1> >
0036 >::type
0037 type;
0038 };
0039 };
0040 }
0041 }}
0042
0043 #endif