-\r
-// Copyright Aleksey Gurtovoy 2000-2008\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "apply_wrap.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
- int N, typename F\r
- >\r
-struct apply_wrap_impl0;\r
-\r
-template<\r
- typename F\r
- >\r
-struct apply_wrap_impl0<\r
- 0\r
- , F\r
- \r
- >\r
-{\r
- typedef typename F::template apply<\r
- \r
-/// since the defaults are "lost", we have to pass *something* even for nullary\r
-/// metafunction classes\r
- na\r
- > type;\r
-};\r
-\r
-template<\r
- typename F\r
- >\r
-struct apply_wrap_impl0<\r
- 1\r
- , F\r
- \r
- >\r
-{\r
- typedef typename F::template apply<\r
- \r
- na\r
- > type;\r
-};\r
-\r
-template<\r
- typename F\r
- >\r
-struct apply_wrap_impl0<\r
- 2\r
- , F\r
- \r
- >\r
-{\r
- typedef typename F::template apply<\r
- \r
- na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F\r
- >\r
-struct apply_wrap_impl0<\r
- 3\r
- , F\r
- \r
- >\r
-{\r
- typedef typename F::template apply<\r
- \r
- na, na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F\r
- >\r
-struct apply_wrap_impl0<\r
- 4\r
- , F\r
- \r
- >\r
-{\r
- typedef typename F::template apply<\r
- \r
- na, na, na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F\r
- >\r
-struct apply_wrap_impl0<\r
- 5\r
- , F\r
- \r
- >\r
-{\r
- typedef typename F::template apply<\r
- \r
- na, na, na, na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F\r
- >\r
-struct apply_wrap0\r
- : apply_wrap_impl0<\r
- ::boost::mpl::aux::arity< F,0 >::value\r
- , F\r
- \r
- >::type\r
-{\r
-};\r
-\r
-template<\r
- int N, typename F, typename T1\r
- >\r
-struct apply_wrap_impl1;\r
-\r
-template<\r
- typename F, typename T1\r
- >\r
-struct apply_wrap_impl1<\r
- 1\r
- , F\r
- , T1\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1\r
- >\r
-struct apply_wrap_impl1<\r
- 2\r
- , F\r
- , T1\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1\r
- , na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1\r
- >\r
-struct apply_wrap_impl1<\r
- 3\r
- , F\r
- , T1\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1\r
- , na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1\r
- >\r
-struct apply_wrap_impl1<\r
- 4\r
- , F\r
- , T1\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1\r
- , na, na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1\r
- >\r
-struct apply_wrap_impl1<\r
- 5\r
- , F\r
- , T1\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1\r
- , na, na, na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1\r
- >\r
-struct apply_wrap1\r
- : apply_wrap_impl1<\r
- ::boost::mpl::aux::arity< F,1 >::value\r
- , F\r
- , T1\r
- >::type\r
-{\r
-};\r
-\r
-template<\r
- int N, typename F, typename T1, typename T2\r
- >\r
-struct apply_wrap_impl2;\r
-\r
-template<\r
- typename F, typename T1, typename T2\r
- >\r
-struct apply_wrap_impl2<\r
- 2\r
- , F\r
- , T1, T2\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2\r
- >\r
-struct apply_wrap_impl2<\r
- 3\r
- , F\r
- , T1, T2\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2\r
-\r
- , na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2\r
- >\r
-struct apply_wrap_impl2<\r
- 4\r
- , F\r
- , T1, T2\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2\r
-\r
- , na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2\r
- >\r
-struct apply_wrap_impl2<\r
- 5\r
- , F\r
- , T1, T2\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2\r
-\r
- , na, na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2\r
- >\r
-struct apply_wrap2\r
- : apply_wrap_impl2<\r
- ::boost::mpl::aux::arity< F,2 >::value\r
- , F\r
- , T1, T2\r
- >::type\r
-{\r
-};\r
-\r
-template<\r
- int N, typename F, typename T1, typename T2, typename T3\r
- >\r
-struct apply_wrap_impl3;\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3\r
- >\r
-struct apply_wrap_impl3<\r
- 3\r
- , F\r
- , T1, T2, T3\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2, T3\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3\r
- >\r
-struct apply_wrap_impl3<\r
- 4\r
- , F\r
- , T1, T2, T3\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2, T3\r
-\r
- , na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3\r
- >\r
-struct apply_wrap_impl3<\r
- 5\r
- , F\r
- , T1, T2, T3\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2, T3\r
-\r
- , na, na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3\r
- >\r
-struct apply_wrap3\r
- : apply_wrap_impl3<\r
- ::boost::mpl::aux::arity< F,3 >::value\r
- , F\r
- , T1, T2, T3\r
- >::type\r
-{\r
-};\r
-\r
-template<\r
- int N, typename F, typename T1, typename T2, typename T3, typename T4\r
- >\r
-struct apply_wrap_impl4;\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- >\r
-struct apply_wrap_impl4<\r
- 4\r
- , F\r
- , T1, T2, T3, T4\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2, T3, T4\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- >\r
-struct apply_wrap_impl4<\r
- 5\r
- , F\r
- , T1, T2, T3, T4\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2, T3, T4\r
-\r
- , na\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- >\r
-struct apply_wrap4\r
- : apply_wrap_impl4<\r
- ::boost::mpl::aux::arity< F,4 >::value\r
- , F\r
- , T1, T2, T3, T4\r
- >::type\r
-{\r
-};\r
-\r
-template<\r
- int N, typename F, typename T1, typename T2, typename T3, typename T4\r
- , typename T5\r
- >\r
-struct apply_wrap_impl5;\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- , typename T5\r
- >\r
-struct apply_wrap_impl5<\r
- 5\r
- , F\r
- , T1, T2, T3, T4, T5\r
- >\r
-{\r
- typedef typename F::template apply<\r
- T1, T2, T3, T4, T5\r
-\r
- > type;\r
-};\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- , typename T5\r
- >\r
-struct apply_wrap5\r
- : apply_wrap_impl5<\r
- ::boost::mpl::aux::arity< F,5 >::value\r
- , F\r
- , T1, T2, T3, T4, T5\r
- >::type\r
-{\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2008
+//
+// 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)
+//
+
+// *Preprocessed* version of the main "apply_wrap.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+ int N, typename F
+ >
+struct apply_wrap_impl0;
+
+template<
+ typename F
+ >
+struct apply_wrap_impl0<
+ 0
+ , F
+
+ >
+{
+ typedef typename F::template apply<
+
+/// since the defaults are "lost", we have to pass *something* even for nullary
+/// metafunction classes
+ na
+ > type;
+};
+
+template<
+ typename F
+ >
+struct apply_wrap_impl0<
+ 1
+ , F
+
+ >
+{
+ typedef typename F::template apply<
+
+ na
+ > type;
+};
+
+template<
+ typename F
+ >
+struct apply_wrap_impl0<
+ 2
+ , F
+
+ >
+{
+ typedef typename F::template apply<
+
+ na, na
+
+ > type;
+};
+
+template<
+ typename F
+ >
+struct apply_wrap_impl0<
+ 3
+ , F
+
+ >
+{
+ typedef typename F::template apply<
+
+ na, na, na
+
+ > type;
+};
+
+template<
+ typename F
+ >
+struct apply_wrap_impl0<
+ 4
+ , F
+
+ >
+{
+ typedef typename F::template apply<
+
+ na, na, na, na
+
+ > type;
+};
+
+template<
+ typename F
+ >
+struct apply_wrap_impl0<
+ 5
+ , F
+
+ >
+{
+ typedef typename F::template apply<
+
+ na, na, na, na, na
+
+ > type;
+};
+
+template<
+ typename F
+ >
+struct apply_wrap0
+ : apply_wrap_impl0<
+ ::boost::mpl::aux::arity< F,0 >::value
+ , F
+
+ >::type
+{
+};
+
+template<
+ int N, typename F, typename T1
+ >
+struct apply_wrap_impl1;
+
+template<
+ typename F, typename T1
+ >
+struct apply_wrap_impl1<
+ 1
+ , F
+ , T1
+ >
+{
+ typedef typename F::template apply<
+ T1
+ > type;
+};
+
+template<
+ typename F, typename T1
+ >
+struct apply_wrap_impl1<
+ 2
+ , F
+ , T1
+ >
+{
+ typedef typename F::template apply<
+ T1
+ , na
+
+ > type;
+};
+
+template<
+ typename F, typename T1
+ >
+struct apply_wrap_impl1<
+ 3
+ , F
+ , T1
+ >
+{
+ typedef typename F::template apply<
+ T1
+ , na, na
+
+ > type;
+};
+
+template<
+ typename F, typename T1
+ >
+struct apply_wrap_impl1<
+ 4
+ , F
+ , T1
+ >
+{
+ typedef typename F::template apply<
+ T1
+ , na, na, na
+
+ > type;
+};
+
+template<
+ typename F, typename T1
+ >
+struct apply_wrap_impl1<
+ 5
+ , F
+ , T1
+ >
+{
+ typedef typename F::template apply<
+ T1
+ , na, na, na, na
+
+ > type;
+};
+
+template<
+ typename F, typename T1
+ >
+struct apply_wrap1
+ : apply_wrap_impl1<
+ ::boost::mpl::aux::arity< F,1 >::value
+ , F
+ , T1
+ >::type
+{
+};
+
+template<
+ int N, typename F, typename T1, typename T2
+ >
+struct apply_wrap_impl2;
+
+template<
+ typename F, typename T1, typename T2
+ >
+struct apply_wrap_impl2<
+ 2
+ , F
+ , T1, T2
+ >
+{
+ typedef typename F::template apply<
+ T1, T2
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2
+ >
+struct apply_wrap_impl2<
+ 3
+ , F
+ , T1, T2
+ >
+{
+ typedef typename F::template apply<
+ T1, T2
+
+ , na
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2
+ >
+struct apply_wrap_impl2<
+ 4
+ , F
+ , T1, T2
+ >
+{
+ typedef typename F::template apply<
+ T1, T2
+
+ , na, na
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2
+ >
+struct apply_wrap_impl2<
+ 5
+ , F
+ , T1, T2
+ >
+{
+ typedef typename F::template apply<
+ T1, T2
+
+ , na, na, na
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2
+ >
+struct apply_wrap2
+ : apply_wrap_impl2<
+ ::boost::mpl::aux::arity< F,2 >::value
+ , F
+ , T1, T2
+ >::type
+{
+};
+
+template<
+ int N, typename F, typename T1, typename T2, typename T3
+ >
+struct apply_wrap_impl3;
+
+template<
+ typename F, typename T1, typename T2, typename T3
+ >
+struct apply_wrap_impl3<
+ 3
+ , F
+ , T1, T2, T3
+ >
+{
+ typedef typename F::template apply<
+ T1, T2, T3
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2, typename T3
+ >
+struct apply_wrap_impl3<
+ 4
+ , F
+ , T1, T2, T3
+ >
+{
+ typedef typename F::template apply<
+ T1, T2, T3
+
+ , na
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2, typename T3
+ >
+struct apply_wrap_impl3<
+ 5
+ , F
+ , T1, T2, T3
+ >
+{
+ typedef typename F::template apply<
+ T1, T2, T3
+
+ , na, na
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2, typename T3
+ >
+struct apply_wrap3
+ : apply_wrap_impl3<
+ ::boost::mpl::aux::arity< F,3 >::value
+ , F
+ , T1, T2, T3
+ >::type
+{
+};
+
+template<
+ int N, typename F, typename T1, typename T2, typename T3, typename T4
+ >
+struct apply_wrap_impl4;
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ >
+struct apply_wrap_impl4<
+ 4
+ , F
+ , T1, T2, T3, T4
+ >
+{
+ typedef typename F::template apply<
+ T1, T2, T3, T4
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ >
+struct apply_wrap_impl4<
+ 5
+ , F
+ , T1, T2, T3, T4
+ >
+{
+ typedef typename F::template apply<
+ T1, T2, T3, T4
+
+ , na
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ >
+struct apply_wrap4
+ : apply_wrap_impl4<
+ ::boost::mpl::aux::arity< F,4 >::value
+ , F
+ , T1, T2, T3, T4
+ >::type
+{
+};
+
+template<
+ int N, typename F, typename T1, typename T2, typename T3, typename T4
+ , typename T5
+ >
+struct apply_wrap_impl5;
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ , typename T5
+ >
+struct apply_wrap_impl5<
+ 5
+ , F
+ , T1, T2, T3, T4, T5
+ >
+{
+ typedef typename F::template apply<
+ T1, T2, T3, T4, T5
+
+ > type;
+};
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ , typename T5
+ >
+struct apply_wrap5
+ : apply_wrap_impl5<
+ ::boost::mpl::aux::arity< F,5 >::value
+ , F
+ , T1, T2, T3, T4, T5
+ >::type
+{
+};
+
+}}
+