diff options
Diffstat (limited to 'src/third_party/boost-1.56.0/boost/fusion/container/list/detail')
16 files changed, 661 insertions, 0 deletions
diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/at_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/at_impl.hpp new file mode 100644 index 00000000000..b7688522a35 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/at_impl.hpp @@ -0,0 +1,136 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) +==============================================================================*/ +#if !defined(FUSION_AT_IMPL_07172005_0726) +#define FUSION_AT_IMPL_07172005_0726 + +#include <boost/fusion/support/config.hpp> +#include <boost/fusion/support/detail/access.hpp> +#include <boost/type_traits/is_const.hpp> +#include <boost/type_traits/add_const.hpp> +#include <boost/mpl/if.hpp> +#include <boost/mpl/bool.hpp> + +namespace boost { namespace fusion +{ + namespace detail + { + template <typename Cons> + struct cons_deref + { + typedef typename Cons::car_type type; + }; + + template <typename Cons, int I> + struct cons_advance + { + typedef typename + cons_advance<Cons, I-1>::type::cdr_type + type; + }; + + template <typename Cons> + struct cons_advance<Cons, 0> + { + typedef Cons type; + }; + + template <typename Cons> + struct cons_advance<Cons, 1> + { + typedef typename Cons::cdr_type type; + }; + + template <typename Cons> + struct cons_advance<Cons, 2> + { +#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above + typedef typename Cons::cdr_type::cdr_type type; +#else + typedef typename Cons::cdr_type _a; + typedef typename _a::cdr_type type; +#endif + }; + + template <typename Cons> + struct cons_advance<Cons, 3> + { +#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above + typedef typename Cons::cdr_type::cdr_type::cdr_type type; +#else + typedef typename Cons::cdr_type _a; + typedef typename _a::cdr_type _b; + typedef typename _b::cdr_type type; +#endif + }; + + template <typename Cons> + struct cons_advance<Cons, 4> + { +#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above + typedef typename Cons::cdr_type::cdr_type::cdr_type::cdr_type type; +#else + typedef typename Cons::cdr_type _a; + typedef typename _a::cdr_type _b; + typedef typename _b::cdr_type _c; + typedef typename _c::cdr_type type; +#endif + }; + } + + struct cons_tag; + + namespace extension + { + template <typename Tag> + struct at_impl; + + template <> + struct at_impl<cons_tag> + { + template <typename Sequence, typename N> + struct apply + { + typedef typename detail::cons_deref< + typename detail::cons_advance<Sequence, N::value>::type>::type + element; + + typedef typename + mpl::if_< + is_const<Sequence> + , typename detail::cref_result<element>::type + , typename detail::ref_result<element>::type + >::type + type; + + template <typename Cons, int N2> + BOOST_FUSION_GPU_ENABLED + static type + call(Cons& s, mpl::int_<N2>) + { + return call(s.cdr, mpl::int_<N2-1>()); + } + + template <typename Cons> + BOOST_FUSION_GPU_ENABLED + static type + call(Cons& s, mpl::int_<0>) + { + return s.car; + } + + BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& s) + { + return call(s, mpl::int_<N::value>()); + } + }; + }; + } +}} + +#endif diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/begin_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/begin_impl.hpp new file mode 100644 index 00000000000..a30223456c1 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/begin_impl.hpp @@ -0,0 +1,51 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + 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) +==============================================================================*/ +#if !defined(FUSION_BEGIN_IMPL_07172005_0824) +#define FUSION_BEGIN_IMPL_07172005_0824 + +#include <boost/fusion/support/config.hpp> +#include <boost/mpl/if.hpp> +#include <boost/type_traits/is_const.hpp> + +namespace boost { namespace fusion +{ + struct nil_; + + struct cons_tag; + + template <typename Car, typename Cdr> + struct cons; + + template <typename Cons> + struct cons_iterator; + + namespace extension + { + template <typename Tag> + struct begin_impl; + + template <> + struct begin_impl<cons_tag> + { + template <typename Sequence> + struct apply + { + typedef cons_iterator<Sequence> type; + + BOOST_FUSION_GPU_ENABLED + static type + call(Sequence& t) + { + return type(t); + } + }; + }; + } +}} + +#endif diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/deref_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/deref_impl.hpp new file mode 100644 index 00000000000..aefffd757f9 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/deref_impl.hpp @@ -0,0 +1,54 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + 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) +==============================================================================*/ +#if !defined(FUSION_DEREF_IMPL_07172005_0831) +#define FUSION_DEREF_IMPL_07172005_0831 + +#include <boost/fusion/support/config.hpp> +#include <boost/mpl/eval_if.hpp> +#include <boost/type_traits/is_const.hpp> +#include <boost/type_traits/add_const.hpp> +#include <boost/type_traits/add_reference.hpp> + +namespace boost { namespace fusion +{ + struct cons_iterator_tag; + + namespace extension + { + template <typename Tag> + struct deref_impl; + + template <> + struct deref_impl<cons_iterator_tag> + { + template <typename Iterator> + struct apply + { + typedef typename Iterator::cons_type cons_type; + typedef typename cons_type::car_type value_type; + + typedef typename mpl::eval_if< + is_const<cons_type> + , add_reference<typename add_const<value_type>::type> + , add_reference<value_type> >::type + type; + + BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return i.cons.car; + } + }; + }; + } +}} + +#endif + + diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/empty_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/empty_impl.hpp new file mode 100644 index 00000000000..e25eab0bcc0 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/empty_impl.hpp @@ -0,0 +1,39 @@ +/*============================================================================= + Copyright (c) 2007 Tobias Schwinger + + 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) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED) +#define BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED + +#include <boost/fusion/support/config.hpp> +#include <boost/type_traits/is_convertible.hpp> +#include <boost/fusion/container/list/nil.hpp> + +namespace boost { namespace fusion +{ + struct cons_tag; + + struct nil_; + + template <typename Car, typename Cdr> + struct cons; + + namespace extension + { + template <typename Tag> + struct empty_impl; + + template <> + struct empty_impl<cons_tag> + { + template <typename Sequence> + struct apply + : boost::is_convertible<Sequence, nil_> + {}; + }; + } +}} + +#endif diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/end_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/end_impl.hpp new file mode 100644 index 00000000000..9220d24a780 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/end_impl.hpp @@ -0,0 +1,53 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + 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) +==============================================================================*/ +#if !defined(FUSION_END_IMPL_07172005_0828) +#define FUSION_END_IMPL_07172005_0828 + +#include <boost/fusion/support/config.hpp> +#include <boost/mpl/if.hpp> +#include <boost/type_traits/is_const.hpp> + +namespace boost { namespace fusion +{ + struct nil_; + + struct cons_tag; + + template <typename Car, typename Cdr> + struct cons; + + template <typename Cons> + struct cons_iterator; + + namespace extension + { + template <typename Tag> + struct end_impl; + + template <> + struct end_impl<cons_tag> + { + template <typename Sequence> + struct apply + { + typedef cons_iterator< + typename mpl::if_<is_const<Sequence>, nil_ const, nil_>::type> + type; + + BOOST_FUSION_GPU_ENABLED + static type + call(Sequence&) + { + return type(); + } + }; + }; + } +}} + +#endif diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/equal_to_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/equal_to_impl.hpp new file mode 100644 index 00000000000..0cbb6bef4f3 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/equal_to_impl.hpp @@ -0,0 +1,40 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) +==============================================================================*/ +#if !defined(FUSION_EQUAL_TO_IMPL_09172005_1120) +#define FUSION_EQUAL_TO_IMPL_09172005_1120 + +#include <boost/fusion/support/config.hpp> +#include <boost/type_traits/is_same.hpp> +#include <boost/mpl/equal_to.hpp> +#include <boost/mpl/and.hpp> + +namespace boost { namespace fusion +{ + struct cons_iterator_tag; + + namespace extension + { + template <typename Tag> + struct equal_to_impl; + + template <> + struct equal_to_impl<cons_iterator_tag> + { + template <typename I1, typename I2> + struct apply + : is_same< + typename I1::identity + , typename I2::identity + > + { + }; + }; + } +}} + +#endif + diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/next_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/next_impl.hpp new file mode 100644 index 00000000000..7383a9630b1 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/next_impl.hpp @@ -0,0 +1,61 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + 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) +==============================================================================*/ +#if !defined(FUSION_NEXT_IMPL_07172005_0836) +#define FUSION_NEXT_IMPL_07172005_0836 + +#include <boost/fusion/support/config.hpp> +#include <boost/fusion/iterator/next.hpp> +#include <boost/fusion/iterator/equal_to.hpp> +#include <boost/mpl/eval_if.hpp> +#include <boost/mpl/identity.hpp> +#include <boost/type_traits/is_const.hpp> +#include <boost/type_traits/add_const.hpp> + +namespace boost { namespace fusion +{ + struct cons_iterator_tag; + + template <typename Cons> + struct cons_iterator; + + namespace extension + { + template <typename Tag> + struct next_impl; + + template <> + struct next_impl<cons_iterator_tag> + { + template <typename Iterator> + struct apply + { + typedef typename Iterator::cons_type cons_type; + typedef typename cons_type::cdr_type cdr_type; + + typedef cons_iterator< + typename mpl::eval_if< + is_const<cons_type> + , add_const<cdr_type> + , mpl::identity<cdr_type> + >::type> + type; + + BOOST_FUSION_GPU_ENABLED + static type + call(Iterator const& i) + { + return type(i.cons.cdr); + } + }; + }; + } +}} + +#endif + + diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp new file mode 100644 index 00000000000..f513a991942 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ + > + struct list; +}} diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp new file mode 100644 index 00000000000..2eedc8b293e --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ + > + struct list; +}} diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp new file mode 100644 index 00000000000..32bfc606f79 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ + > + struct list; +}} diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp new file mode 100644 index 00000000000..5d0da6df4bc --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ + > + struct list; +}} diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp new file mode 100644 index 00000000000..2b3ae66cb6e --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) + + This is an auto-generated file. Do not edit! +==============================================================================*/ +namespace boost { namespace fusion +{ + struct void_; + template < + typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T21 = void_ , typename T22 = void_ , typename T23 = void_ , typename T24 = void_ , typename T25 = void_ , typename T26 = void_ , typename T27 = void_ , typename T28 = void_ , typename T29 = void_ , typename T30 = void_ , typename T31 = void_ , typename T32 = void_ , typename T33 = void_ , typename T34 = void_ , typename T35 = void_ , typename T36 = void_ , typename T37 = void_ , typename T38 = void_ , typename T39 = void_ , typename T40 = void_ , typename T41 = void_ , typename T42 = void_ , typename T43 = void_ , typename T44 = void_ , typename T45 = void_ , typename T46 = void_ , typename T47 = void_ , typename T48 = void_ , typename T49 = void_ + > + struct list; +}} diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp new file mode 100644 index 00000000000..b9be34752fc --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp @@ -0,0 +1,22 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) + + This is an auto-generated file. Do not edit! +==============================================================================*/ + +#if FUSION_MAX_LIST_SIZE <= 10 +#include <boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp> +#elif FUSION_MAX_LIST_SIZE <= 20 +#include <boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp> +#elif FUSION_MAX_LIST_SIZE <= 30 +#include <boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp> +#elif FUSION_MAX_LIST_SIZE <= 40 +#include <boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp> +#elif FUSION_MAX_LIST_SIZE <= 50 +#include <boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp> +#else +#error "FUSION_MAX_LIST_SIZE out of bounds for preprocessed headers" +#endif diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/reverse_cons.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/reverse_cons.hpp new file mode 100644 index 00000000000..f80e2c2d309 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/reverse_cons.hpp @@ -0,0 +1,46 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + 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) +==============================================================================*/ +#if !defined(BOOST_FUSION_REVERSE_CONS_HPP_INCLUDED) +#define BOOST_FUSION_REVERSE_CONS_HPP_INCLUDED + +#include <boost/fusion/support/config.hpp> +#include <boost/fusion/container/list/cons_fwd.hpp> + +namespace boost { namespace fusion { namespace detail +{ + //////////////////////////////////////////////////////////////////////////// + template<typename Cons, typename State = nil_> + struct reverse_cons; + + template<typename Car, typename Cdr, typename State> + struct reverse_cons<cons<Car, Cdr>, State> + { + typedef reverse_cons<Cdr, cons<Car, State> > impl; + typedef typename impl::type type; + + BOOST_FUSION_GPU_ENABLED + static type call(cons<Car, Cdr> const &cons, State const &state = State()) + { + typedef fusion::cons<Car, State> cdr_type; + return impl::call(cons.cdr, cdr_type(cons.car, state)); + } + }; + + template<typename State> + struct reverse_cons<nil_, State> + { + typedef State type; + + BOOST_FUSION_GPU_ENABLED + static State const &call(nil_ const &, State const &state = State()) + { + return state; + } + }; +}}} + +#endif diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/value_at_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/value_at_impl.hpp new file mode 100644 index 00000000000..ea9a859361b --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/value_at_impl.hpp @@ -0,0 +1,43 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + + 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) +==============================================================================*/ +#if !defined(FUSION_VALUE_AT_IMPL_07172005_0952) +#define FUSION_VALUE_AT_IMPL_07172005_0952 + +#include <boost/fusion/support/config.hpp> +#include <boost/fusion/support/detail/access.hpp> +#include <boost/type_traits/is_const.hpp> +#include <boost/mpl/eval_if.hpp> +#include <boost/mpl/bool.hpp> + +namespace boost { namespace fusion +{ + struct cons_tag; + + namespace extension + { + template <typename Tag> + struct value_at_impl; + + template <> + struct value_at_impl<cons_tag> + { + template <typename Sequence, typename N> + struct apply + { + typedef typename + mpl::eval_if< + mpl::bool_<N::value == 0> + , mpl::identity<typename Sequence::car_type> + , apply<typename Sequence::cdr_type, mpl::int_<N::value-1> > + >::type + type; + }; + }; + } +}} + +#endif diff --git a/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/value_of_impl.hpp b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/value_of_impl.hpp new file mode 100644 index 00000000000..daabe4110e6 --- /dev/null +++ b/src/third_party/boost-1.56.0/boost/fusion/container/list/detail/value_of_impl.hpp @@ -0,0 +1,36 @@ +/*============================================================================= + Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2005 Eric Niebler + + 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) +==============================================================================*/ +#if !defined(FUSION_VALUE_OF_IMPL_07172005_0838) +#define FUSION_VALUE_OF_IMPL_07172005_0838 + +namespace boost { namespace fusion +{ + struct cons_iterator_tag; + + namespace extension + { + template <typename Tag> + struct value_of_impl; + + template <> + struct value_of_impl<cons_iterator_tag> + { + template <typename Iterator> + struct apply + { + typedef typename Iterator::cons_type cons_type; + typedef typename cons_type::car_type type; + }; + }; + } + +}} + +#endif + + |