summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2013-01-12 18:41:34 (GMT)
committerSwift Review <review@swift.im>2013-01-13 10:36:26 (GMT)
commitf3bc816af1b0d61452de973963e453bf3b3f95a2 (patch)
treee895f8afa3580e6cff6f5ad2017d45bf147a17c2 /3rdParty/Boost/src/boost/fusion/container/list
parent188fc285c6555eadd3c9d50ab8a94adcade78d89 (diff)
downloadswift-f3bc816af1b0d61452de973963e453bf3b3f95a2.zip
swift-f3bc816af1b0d61452de973963e453bf3b3f95a2.tar.bz2
Adding in the spirit Boost stuff
Change-Id: I4f127ce61667243b64081b0aa309028d5077045f
Diffstat (limited to '3rdParty/Boost/src/boost/fusion/container/list')
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/cons.hpp144
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/cons_fwd.hpp20
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/cons_iterator.hpp89
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/convert.hpp56
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/at_impl.hpp132
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/begin_impl.hpp49
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/build_cons.hpp58
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/convert_impl.hpp51
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/deref_impl.hpp52
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/empty_impl.hpp37
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/end_impl.hpp51
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/equal_to_impl.hpp39
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/next_impl.hpp59
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp16
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp22
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/reverse_cons.hpp43
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/value_at_impl.hpp42
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/detail/value_of_impl.hpp36
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/limits.hpp21
-rw-r--r--3rdParty/Boost/src/boost/fusion/container/list/list_fwd.hpp50
24 files changed, 1131 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/cons.hpp b/3rdParty/Boost/src/boost/fusion/container/list/cons.hpp
new file mode 100644
index 0000000..666b536
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/cons.hpp
@@ -0,0 +1,144 @@
+/*=============================================================================
+ 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_CONS_07172005_0843)
+#define FUSION_CONS_07172005_0843
+
+#include <boost/fusion/container/list/cons_fwd.hpp>
+#include <boost/fusion/support/detail/access.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/end.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/container/list/cons_iterator.hpp>
+#include <boost/fusion/container/list/detail/begin_impl.hpp>
+#include <boost/fusion/container/list/detail/end_impl.hpp>
+#include <boost/fusion/container/list/detail/at_impl.hpp>
+#include <boost/fusion/container/list/detail/value_at_impl.hpp>
+#include <boost/fusion/container/list/detail/empty_impl.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/or.hpp>
+
+namespace boost { namespace fusion
+{
+ struct void_;
+ struct cons_tag;
+ struct forward_traversal_tag;
+ struct fusion_sequence_tag;
+
+ struct nil : sequence_base<nil>
+ {
+ typedef mpl::int_<0> size;
+ typedef cons_tag fusion_tag;
+ typedef fusion_sequence_tag tag; // this gets picked up by MPL
+ typedef mpl::false_ is_view;
+ typedef forward_traversal_tag category;
+ typedef void_ car_type;
+ typedef void_ cdr_type;
+
+ nil() {}
+
+ template <typename Iterator>
+ nil(Iterator const& /*iter*/, mpl::true_ /*this_is_an_iterator*/)
+ {}
+
+ template <typename Iterator>
+ void assign_from_iter(Iterator const& /*iter*/)
+ {
+ }
+ };
+
+ template <typename Car, typename Cdr /*= nil*/>
+ struct cons : sequence_base<cons<Car, Cdr> >
+ {
+ typedef mpl::int_<Cdr::size::value+1> size;
+ typedef cons_tag fusion_tag;
+ typedef fusion_sequence_tag tag; // this gets picked up by MPL
+ typedef mpl::false_ is_view;
+ typedef forward_traversal_tag category;
+ typedef Car car_type;
+ typedef Cdr cdr_type;
+
+ cons()
+ : car(), cdr() {}
+
+ explicit cons(typename detail::call_param<Car>::type in_car)
+ : car(in_car), cdr() {}
+
+ cons(
+ typename detail::call_param<Car>::type in_car
+ , typename detail::call_param<Cdr>::type in_cdr)
+ : car(in_car), cdr(in_cdr) {}
+
+ template <typename Car2, typename Cdr2>
+ cons(cons<Car2, Cdr2> const& rhs)
+ : car(rhs.car), cdr(rhs.cdr) {}
+
+ cons(cons const& rhs)
+ : car(rhs.car), cdr(rhs.cdr) {}
+
+ template <typename Sequence>
+ cons(
+ Sequence const& seq
+ , typename boost::disable_if<
+ mpl::or_<
+ is_convertible<Sequence, cons> // use copy ctor instead
+ , is_convertible<Sequence, Car> // use copy to car instead
+ >
+ >::type* /*dummy*/ = 0
+ )
+ : car(*fusion::begin(seq))
+ , cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {}
+
+ template <typename Iterator>
+ cons(Iterator const& iter, mpl::true_ /*this_is_an_iterator*/)
+ : car(*iter)
+ , cdr(fusion::next(iter), mpl::true_()) {}
+
+ template <typename Car2, typename Cdr2>
+ cons& operator=(cons<Car2, Cdr2> const& rhs)
+ {
+ car = rhs.car;
+ cdr = rhs.cdr;
+ return *this;
+ }
+
+ cons& operator=(cons const& rhs)
+ {
+ car = rhs.car;
+ cdr = rhs.cdr;
+ return *this;
+ }
+
+ template <typename Sequence>
+ typename boost::disable_if<is_convertible<Sequence, Car>, cons&>::type
+ operator=(Sequence const& seq)
+ {
+ typedef typename result_of::begin<Sequence const>::type Iterator;
+ Iterator iter = fusion::begin(seq);
+ this->assign_from_iter(iter);
+ return *this;
+ }
+
+ template <typename Iterator>
+ void assign_from_iter(Iterator const& iter)
+ {
+ car = *iter;
+ cdr.assign_from_iter(fusion::next(iter));
+ }
+
+ car_type car;
+ cdr_type cdr;
+ };
+}}
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/cons_fwd.hpp b/3rdParty/Boost/src/boost/fusion/container/list/cons_fwd.hpp
new file mode 100644
index 0000000..80bb044
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/cons_fwd.hpp
@@ -0,0 +1,20 @@
+/*=============================================================================
+ 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(BOOST_FUSION_CONS_FWD_HPP_INCLUDED)
+#define BOOST_FUSION_CONS_FWD_HPP_INCLUDED
+
+namespace boost { namespace fusion
+{
+ struct nil;
+
+ template <typename Car, typename Cdr = nil>
+ struct cons;
+}}
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/cons_iterator.hpp b/3rdParty/Boost/src/boost/fusion/container/list/cons_iterator.hpp
new file mode 100644
index 0000000..bc4fa09
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/cons_iterator.hpp
@@ -0,0 +1,89 @@
+/*=============================================================================
+ 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_CONS_ITERATOR_07172005_0849)
+#define FUSION_CONS_ITERATOR_07172005_0849
+
+#include <boost/type_traits/add_const.hpp>
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/container/list/detail/deref_impl.hpp>
+#include <boost/fusion/container/list/detail/next_impl.hpp>
+#include <boost/fusion/container/list/detail/value_of_impl.hpp>
+#include <boost/fusion/container/list/detail/equal_to_impl.hpp>
+#include <boost/fusion/container/list/list_fwd.hpp>
+
+namespace boost { namespace fusion
+{
+ struct nil;
+ struct cons_iterator_tag;
+ struct forward_traversal_tag;
+
+ template <typename Cons>
+ struct cons_iterator_identity;
+
+ template <typename Cons = nil>
+ struct cons_iterator : iterator_base<cons_iterator<Cons> >
+ {
+ typedef cons_iterator_tag fusion_tag;
+ typedef forward_traversal_tag category;
+ typedef Cons cons_type;
+ typedef cons_iterator_identity<
+ typename add_const<Cons>::type>
+ identity;
+
+ explicit cons_iterator(cons_type& in_cons)
+ : cons(in_cons) {}
+
+ cons_type& cons;
+
+ private:
+ // silence MSVC warning C4512: assignment operator could not be generated
+ cons_iterator& operator= (cons_iterator const&);
+ };
+
+ struct nil_iterator : iterator_base<nil_iterator>
+ {
+ typedef forward_traversal_tag category;
+ typedef cons_iterator_tag fusion_tag;
+ typedef nil cons_type;
+ typedef cons_iterator_identity<
+ add_const<nil>::type>
+ identity;
+ nil_iterator() {}
+ explicit nil_iterator(nil const&) {}
+ };
+
+ template <>
+ struct cons_iterator<nil> : nil_iterator
+ {
+ cons_iterator() {}
+ explicit cons_iterator(nil const&) {}
+ };
+
+ template <>
+ struct cons_iterator<nil const> : nil_iterator
+ {
+ cons_iterator() {}
+ explicit cons_iterator(nil const&) {}
+ };
+
+ template <>
+ struct cons_iterator<list<> > : nil_iterator
+ {
+ cons_iterator() {}
+ explicit cons_iterator(nil const&) {}
+ };
+
+ template <>
+ struct cons_iterator<list<> const> : nil_iterator
+ {
+ cons_iterator() {}
+ explicit cons_iterator(nil const&) {}
+ };
+}}
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/convert.hpp b/3rdParty/Boost/src/boost/fusion/container/list/convert.hpp
new file mode 100644
index 0000000..f356d7e
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/convert.hpp
@@ -0,0 +1,56 @@
+/*=============================================================================
+ 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_CONVERT_09232005_1215)
+#define FUSION_CONVERT_09232005_1215
+
+#include <boost/fusion/container/list/cons.hpp>
+#include <boost/fusion/container/list/detail/build_cons.hpp>
+#include <boost/fusion/container/list/detail/convert_impl.hpp>
+#include <boost/fusion/sequence/intrinsic/empty.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/end.hpp>
+
+namespace boost { namespace fusion
+{
+ namespace result_of
+ {
+ template <typename Sequence>
+ struct as_list
+ {
+ typedef typename
+ detail::build_cons<
+ typename result_of::begin<Sequence>::type
+ , typename result_of::end<Sequence>::type
+ >
+ build_cons;
+
+ typedef typename build_cons::type type;
+
+ static type
+ call(Sequence& seq)
+ {
+ return build_cons::call(fusion::begin(seq), fusion::end(seq));
+ }
+ };
+ }
+
+ template <typename Sequence>
+ inline typename result_of::as_list<Sequence>::type
+ as_list(Sequence& seq)
+ {
+ return result_of::as_list<Sequence>::call(seq);
+ }
+
+ template <typename Sequence>
+ inline typename result_of::as_list<Sequence const>::type
+ as_list(Sequence const& seq)
+ {
+ return result_of::as_list<Sequence const>::call(seq);
+ }
+}}
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/at_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/at_impl.hpp
new file mode 100644
index 0000000..7574639
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/at_impl.hpp
@@ -0,0 +1,132 @@
+/*=============================================================================
+ 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/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>
+ static type
+ call(Cons& s, mpl::int_<N2>)
+ {
+ return call(s.cdr, mpl::int_<N2-1>());
+ }
+
+ template <typename Cons>
+ static type
+ call(Cons& s, mpl::int_<0>)
+ {
+ return s.car;
+ }
+
+ static type
+ call(Sequence& s)
+ {
+ return call(s, mpl::int_<N::value>());
+ }
+ };
+ };
+ }
+}}
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/begin_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/begin_impl.hpp
new file mode 100644
index 0000000..571e681
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/begin_impl.hpp
@@ -0,0 +1,49 @@
+/*=============================================================================
+ 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/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;
+
+ static type
+ call(Sequence& t)
+ {
+ return type(t);
+ }
+ };
+ };
+ }
+}}
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/build_cons.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/build_cons.hpp
new file mode 100644
index 0000000..ef48652
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/build_cons.hpp
@@ -0,0 +1,58 @@
+/*=============================================================================
+ 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_BUILD_CONS_09232005_1222)
+#define FUSION_BUILD_CONS_09232005_1222
+
+#include <boost/fusion/container/list/cons.hpp>
+#include <boost/fusion/iterator/equal_to.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/value_of.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+
+namespace boost { namespace fusion { namespace detail
+{
+ template <
+ typename First
+ , typename Last
+ , bool is_empty = result_of::equal_to<First, Last>::value>
+ struct build_cons;
+
+ template <typename First, typename Last>
+ struct build_cons<First, Last, true>
+ {
+ typedef nil type;
+
+ static nil
+ call(First const&, Last const&)
+ {
+ return nil();
+ }
+ };
+
+ template <typename First, typename Last>
+ struct build_cons<First, Last, false>
+ {
+ typedef
+ build_cons<typename result_of::next<First>::type, Last>
+ next_build_cons;
+
+ typedef cons<
+ typename result_of::value_of<First>::type
+ , typename next_build_cons::type>
+ type;
+
+ static type
+ call(First const& f, Last const& l)
+ {
+ typename result_of::value_of<First>::type v = *f;
+ return type(v, next_build_cons::call(fusion::next(f), l));
+ }
+ };
+
+}}}
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/convert_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/convert_impl.hpp
new file mode 100644
index 0000000..19e5fc2
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/convert_impl.hpp
@@ -0,0 +1,51 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2005-2006 Dan Marsden
+
+ 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_CONVERT_IMPL_09232005_1215)
+#define FUSION_CONVERT_IMPL_09232005_1215
+
+#include <boost/fusion/container/list/cons.hpp>
+#include <boost/fusion/container/list/detail/build_cons.hpp>
+#include <boost/fusion/sequence/intrinsic/empty.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/end.hpp>
+
+namespace boost { namespace fusion
+{
+ struct cons_tag;
+
+ namespace extension
+ {
+ template <typename T>
+ struct convert_impl;
+
+ template <>
+ struct convert_impl<cons_tag>
+ {
+ template <typename Sequence>
+ struct apply
+ {
+ typedef typename
+ detail::build_cons<
+ typename result_of::begin<Sequence>::type
+ , typename result_of::end<Sequence>::type
+ >
+ build_cons;
+
+ typedef typename build_cons::type type;
+
+ static type
+ call(Sequence& seq)
+ {
+ return build_cons::call(fusion::begin(seq), fusion::end(seq));
+ }
+ };
+ };
+ }
+}}
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/deref_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/deref_impl.hpp
new file mode 100644
index 0000000..a5f75ea
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/deref_impl.hpp
@@ -0,0 +1,52 @@
+/*=============================================================================
+ 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/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;
+
+ static type
+ call(Iterator const& i)
+ {
+ return i.cons.car;
+ }
+ };
+ };
+ }
+}}
+
+#endif
+
+
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/empty_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/empty_impl.hpp
new file mode 100644
index 0000000..5c92c73
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/empty_impl.hpp
@@ -0,0 +1,37 @@
+/*=============================================================================
+ 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/type_traits/is_convertible.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/3rdParty/Boost/src/boost/fusion/container/list/detail/end_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/end_impl.hpp
new file mode 100644
index 0000000..3792250
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/end_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_END_IMPL_07172005_0828)
+#define FUSION_END_IMPL_07172005_0828
+
+#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;
+
+ static type
+ call(Sequence&)
+ {
+ return type();
+ }
+ };
+ };
+ }
+}}
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/equal_to_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/equal_to_impl.hpp
new file mode 100644
index 0000000..a4d5929
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/equal_to_impl.hpp
@@ -0,0 +1,39 @@
+/*=============================================================================
+ 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/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/3rdParty/Boost/src/boost/fusion/container/list/detail/next_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/next_impl.hpp
new file mode 100644
index 0000000..71006e5
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/next_impl.hpp
@@ -0,0 +1,59 @@
+/*=============================================================================
+ 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/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;
+
+ static type
+ call(Iterator const& i)
+ {
+ return type(i.cons.cdr);
+ }
+ };
+ };
+ }
+}}
+
+#endif
+
+
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp
new file mode 100644
index 0000000..f513a99
--- /dev/null
+++ b/3rdParty/Boost/src/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/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp
new file mode 100644
index 0000000..2eedc8b
--- /dev/null
+++ b/3rdParty/Boost/src/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/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp
new file mode 100644
index 0000000..32bfc60
--- /dev/null
+++ b/3rdParty/Boost/src/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/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp
new file mode 100644
index 0000000..5d0da6d
--- /dev/null
+++ b/3rdParty/Boost/src/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/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp
new file mode 100644
index 0000000..2b3ae66
--- /dev/null
+++ b/3rdParty/Boost/src/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/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp
new file mode 100644
index 0000000..b9be347
--- /dev/null
+++ b/3rdParty/Boost/src/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/3rdParty/Boost/src/boost/fusion/container/list/detail/reverse_cons.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/reverse_cons.hpp
new file mode 100644
index 0000000..59178e8
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/reverse_cons.hpp
@@ -0,0 +1,43 @@
+/*=============================================================================
+ 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/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;
+
+ 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;
+
+ static State const &call(nil const &, State const &state = State())
+ {
+ return state;
+ }
+ };
+}}}
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/detail/value_at_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/value_at_impl.hpp
new file mode 100644
index 0000000..353f8d5
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/detail/value_at_impl.hpp
@@ -0,0 +1,42 @@
+/*=============================================================================
+ 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/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/3rdParty/Boost/src/boost/fusion/container/list/detail/value_of_impl.hpp b/3rdParty/Boost/src/boost/fusion/container/list/detail/value_of_impl.hpp
new file mode 100644
index 0000000..daabe41
--- /dev/null
+++ b/3rdParty/Boost/src/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
+
+
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/limits.hpp b/3rdParty/Boost/src/boost/fusion/container/list/limits.hpp
new file mode 100644
index 0000000..1d545ba
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/limits.hpp
@@ -0,0 +1,21 @@
+/*=============================================================================
+ 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_LIST_LIMITS_07172005_0112)
+#define FUSION_LIST_LIMITS_07172005_0112
+
+#if !defined(FUSION_MAX_LIST_SIZE)
+# define FUSION_MAX_LIST_SIZE 10
+#else
+# if FUSION_MAX_LIST_SIZE < 3
+# undef FUSION_MAX_LIST_SIZE
+# define FUSION_MAX_LIST_SIZE 10
+# endif
+#endif
+
+#define FUSION_MAX_LIST_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_LIST_SIZE))
+
+#endif
diff --git a/3rdParty/Boost/src/boost/fusion/container/list/list_fwd.hpp b/3rdParty/Boost/src/boost/fusion/container/list/list_fwd.hpp
new file mode 100644
index 0000000..a142689
--- /dev/null
+++ b/3rdParty/Boost/src/boost/fusion/container/list/list_fwd.hpp
@@ -0,0 +1,50 @@
+/*=============================================================================
+ 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_LIST_FORWARD_07172005_0224)
+#define FUSION_LIST_FORWARD_07172005_0224
+
+#include <boost/fusion/container/list/limits.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/list/detail/preprocessed/list_fwd.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_SIZE_STR "_fwd.hpp")
+#endif
+
+/*=============================================================================
+ 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 defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct void_;
+
+ template <
+ BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+ FUSION_MAX_LIST_SIZE, typename T, void_)
+ >
+ struct list;
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif