-\r
-// Copyright Peter Dimov 2001\r
-// Copyright Aleksey Gurtovoy 2001-2004\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 "bind.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-namespace aux {\r
-\r
-template<\r
- typename T, typename U1, typename U2, typename U3, typename U4\r
- , typename U5\r
- >\r
-struct resolve_bind_arg\r
-{\r
- typedef T type;\r
-};\r
-\r
-template<\r
- typename T\r
- , typename Arg\r
- >\r
-struct replace_unnamed_arg\r
-{\r
- typedef Arg next;\r
- typedef T type;\r
-};\r
-\r
-template<\r
- typename Arg\r
- >\r
-struct replace_unnamed_arg< arg< -1 >, Arg >\r
-{\r
- typedef typename Arg::next next;\r
- typedef Arg type;\r
-};\r
-\r
-template<\r
- int N, typename U1, typename U2, typename U3, typename U4, typename U5\r
- >\r
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >\r
-{\r
- typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-template<\r
- typename F\r
- >\r
-struct bind0\r
-{\r
- template<\r
- typename U1, typename U2, typename U3, typename U4, typename U5\r
- >\r
- struct apply\r
- {\r
- private:\r
- typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
- typedef typename r0::type a0;\r
- typedef typename r0::next n1;\r
- typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
- ///\r
- public:\r
- typedef typename apply_wrap0<\r
- f_\r
- >::type type;\r
-\r
- };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
- typename F, typename U1, typename U2, typename U3, typename U4\r
- , typename U5\r
- >\r
-struct resolve_bind_arg<\r
- bind0<F>, U1, U2, U3, U4, U5\r
- >\r
-{\r
- typedef bind0<F> f_;\r
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)\r
-\r
-template<\r
- typename F, typename T1\r
- >\r
-struct bind1\r
-{\r
- template<\r
- typename U1, typename U2, typename U3, typename U4, typename U5\r
- >\r
- struct apply\r
- {\r
- private:\r
- typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
- typedef typename r0::type a0;\r
- typedef typename r0::next n1;\r
- typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
- ///\r
- typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
- typedef typename r1::type a1;\r
- typedef typename r1::next n2;\r
- typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
- ///\r
- public:\r
- typedef typename apply_wrap1<\r
- f_\r
- , typename t1::type\r
- >::type type;\r
-\r
- };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
- typename F, typename T1, typename U1, typename U2, typename U3\r
- , typename U4, typename U5\r
- >\r
-struct resolve_bind_arg<\r
- bind1< F,T1 >, U1, U2, U3, U4, U5\r
- >\r
-{\r
- typedef bind1< F,T1 > f_;\r
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)\r
-\r
-template<\r
- typename F, typename T1, typename T2\r
- >\r
-struct bind2\r
-{\r
- template<\r
- typename U1, typename U2, typename U3, typename U4, typename U5\r
- >\r
- struct apply\r
- {\r
- private:\r
- typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
- typedef typename r0::type a0;\r
- typedef typename r0::next n1;\r
- typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
- ///\r
- typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
- typedef typename r1::type a1;\r
- typedef typename r1::next n2;\r
- typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
- ///\r
- typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
- typedef typename r2::type a2;\r
- typedef typename r2::next n3;\r
- typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
- ///\r
- public:\r
- typedef typename apply_wrap2<\r
- f_\r
- , typename t1::type, typename t2::type\r
- >::type type;\r
-\r
- };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename U1, typename U2\r
- , typename U3, typename U4, typename U5\r
- >\r
-struct resolve_bind_arg<\r
- bind2< F,T1,T2 >, U1, U2, U3, U4, U5\r
- >\r
-{\r
- typedef bind2< F,T1,T2 > f_;\r
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3\r
- >\r
-struct bind3\r
-{\r
- template<\r
- typename U1, typename U2, typename U3, typename U4, typename U5\r
- >\r
- struct apply\r
- {\r
- private:\r
- typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
- typedef typename r0::type a0;\r
- typedef typename r0::next n1;\r
- typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
- ///\r
- typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
- typedef typename r1::type a1;\r
- typedef typename r1::next n2;\r
- typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
- ///\r
- typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
- typedef typename r2::type a2;\r
- typedef typename r2::next n3;\r
- typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
- ///\r
- typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
- typedef typename r3::type a3;\r
- typedef typename r3::next n4;\r
- typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
- ///\r
- public:\r
- typedef typename apply_wrap3<\r
- f_\r
- , typename t1::type, typename t2::type, typename t3::type\r
- >::type type;\r
-\r
- };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename U1\r
- , typename U2, typename U3, typename U4, typename U5\r
- >\r
-struct resolve_bind_arg<\r
- bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5\r
- >\r
-{\r
- typedef bind3< F,T1,T2,T3 > f_;\r
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- >\r
-struct bind4\r
-{\r
- template<\r
- typename U1, typename U2, typename U3, typename U4, typename U5\r
- >\r
- struct apply\r
- {\r
- private:\r
- typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
- typedef typename r0::type a0;\r
- typedef typename r0::next n1;\r
- typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
- ///\r
- typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
- typedef typename r1::type a1;\r
- typedef typename r1::next n2;\r
- typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
- ///\r
- typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
- typedef typename r2::type a2;\r
- typedef typename r2::next n3;\r
- typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
- ///\r
- typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
- typedef typename r3::type a3;\r
- typedef typename r3::next n4;\r
- typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
- ///\r
- typedef aux::replace_unnamed_arg< T4,n4 > r4;\r
- typedef typename r4::type a4;\r
- typedef typename r4::next n5;\r
- typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;\r
- ///\r
- public:\r
- typedef typename apply_wrap4<\r
- f_\r
- , typename t1::type, typename t2::type, typename t3::type\r
- , typename t4::type\r
- >::type type;\r
-\r
- };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- , typename U1, typename U2, typename U3, typename U4, typename U5\r
- >\r
-struct resolve_bind_arg<\r
- bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5\r
- >\r
-{\r
- typedef bind4< F,T1,T2,T3,T4 > f_;\r
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- , typename T5\r
- >\r
-struct bind5\r
-{\r
- template<\r
- typename U1, typename U2, typename U3, typename U4, typename U5\r
- >\r
- struct apply\r
- {\r
- private:\r
- typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
- typedef typename r0::type a0;\r
- typedef typename r0::next n1;\r
- typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
- ///\r
- typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
- typedef typename r1::type a1;\r
- typedef typename r1::next n2;\r
- typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
- ///\r
- typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
- typedef typename r2::type a2;\r
- typedef typename r2::next n3;\r
- typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
- ///\r
- typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
- typedef typename r3::type a3;\r
- typedef typename r3::next n4;\r
- typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
- ///\r
- typedef aux::replace_unnamed_arg< T4,n4 > r4;\r
- typedef typename r4::type a4;\r
- typedef typename r4::next n5;\r
- typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;\r
- ///\r
- typedef aux::replace_unnamed_arg< T5,n5 > r5;\r
- typedef typename r5::type a5;\r
- typedef typename r5::next n6;\r
- typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;\r
- ///\r
- public:\r
- typedef typename apply_wrap5<\r
- f_\r
- , typename t1::type, typename t2::type, typename t3::type\r
- , typename t4::type, typename t5::type\r
- >::type type;\r
-\r
- };\r
-};\r
-\r
-namespace aux {\r
-\r
-template<\r
- typename F, typename T1, typename T2, typename T3, typename T4\r
- , typename T5, typename U1, typename U2, typename U3, typename U4\r
- , typename U5\r
- >\r
-struct resolve_bind_arg<\r
- bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5\r
- >\r
-{\r
- typedef bind5< F,T1,T2,T3,T4,T5 > f_;\r
- typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
-};\r
-\r
-} // namespace aux\r
-\r
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)\r
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)\r
-}}\r
-\r
+
+// Copyright Peter Dimov 2001
+// Copyright Aleksey Gurtovoy 2001-2004
+//
+// 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 "bind.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+namespace aux {
+
+template<
+ typename T, typename U1, typename U2, typename U3, typename U4
+ , typename U5
+ >
+struct resolve_bind_arg
+{
+ typedef T type;
+};
+
+template<
+ typename T
+ , typename Arg
+ >
+struct replace_unnamed_arg
+{
+ typedef Arg next;
+ typedef T type;
+};
+
+template<
+ typename Arg
+ >
+struct replace_unnamed_arg< arg< -1 >, Arg >
+{
+ typedef typename Arg::next next;
+ typedef Arg type;
+};
+
+template<
+ int N, typename U1, typename U2, typename U3, typename U4, typename U5
+ >
+struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
+{
+ typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
+};
+
+} // namespace aux
+
+template<
+ typename F
+ >
+struct bind0
+{
+ template<
+ typename U1, typename U2, typename U3, typename U4, typename U5
+ >
+ struct apply
+ {
+ private:
+ typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+ typedef typename r0::type a0;
+ typedef typename r0::next n1;
+ typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+ ///
+ public:
+ typedef typename apply_wrap0<
+ f_
+ >::type type;
+
+ };
+};
+
+namespace aux {
+
+template<
+ typename F, typename U1, typename U2, typename U3, typename U4
+ , typename U5
+ >
+struct resolve_bind_arg<
+ bind0<F>, U1, U2, U3, U4, U5
+ >
+{
+ typedef bind0<F> f_;
+ typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
+
+template<
+ typename F, typename T1
+ >
+struct bind1
+{
+ template<
+ typename U1, typename U2, typename U3, typename U4, typename U5
+ >
+ struct apply
+ {
+ private:
+ typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+ typedef typename r0::type a0;
+ typedef typename r0::next n1;
+ typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+ ///
+ typedef aux::replace_unnamed_arg< T1,n1 > r1;
+ typedef typename r1::type a1;
+ typedef typename r1::next n2;
+ typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+ ///
+ public:
+ typedef typename apply_wrap1<
+ f_
+ , typename t1::type
+ >::type type;
+
+ };
+};
+
+namespace aux {
+
+template<
+ typename F, typename T1, typename U1, typename U2, typename U3
+ , typename U4, typename U5
+ >
+struct resolve_bind_arg<
+ bind1< F,T1 >, U1, U2, U3, U4, U5
+ >
+{
+ typedef bind1< F,T1 > f_;
+ typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
+
+template<
+ typename F, typename T1, typename T2
+ >
+struct bind2
+{
+ template<
+ typename U1, typename U2, typename U3, typename U4, typename U5
+ >
+ struct apply
+ {
+ private:
+ typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+ typedef typename r0::type a0;
+ typedef typename r0::next n1;
+ typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+ ///
+ typedef aux::replace_unnamed_arg< T1,n1 > r1;
+ typedef typename r1::type a1;
+ typedef typename r1::next n2;
+ typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+ ///
+ typedef aux::replace_unnamed_arg< T2,n2 > r2;
+ typedef typename r2::type a2;
+ typedef typename r2::next n3;
+ typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
+ ///
+ public:
+ typedef typename apply_wrap2<
+ f_
+ , typename t1::type, typename t2::type
+ >::type type;
+
+ };
+};
+
+namespace aux {
+
+template<
+ typename F, typename T1, typename T2, typename U1, typename U2
+ , typename U3, typename U4, typename U5
+ >
+struct resolve_bind_arg<
+ bind2< F,T1,T2 >, U1, U2, U3, U4, U5
+ >
+{
+ typedef bind2< F,T1,T2 > f_;
+ typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
+
+template<
+ typename F, typename T1, typename T2, typename T3
+ >
+struct bind3
+{
+ template<
+ typename U1, typename U2, typename U3, typename U4, typename U5
+ >
+ struct apply
+ {
+ private:
+ typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+ typedef typename r0::type a0;
+ typedef typename r0::next n1;
+ typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+ ///
+ typedef aux::replace_unnamed_arg< T1,n1 > r1;
+ typedef typename r1::type a1;
+ typedef typename r1::next n2;
+ typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+ ///
+ typedef aux::replace_unnamed_arg< T2,n2 > r2;
+ typedef typename r2::type a2;
+ typedef typename r2::next n3;
+ typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
+ ///
+ typedef aux::replace_unnamed_arg< T3,n3 > r3;
+ typedef typename r3::type a3;
+ typedef typename r3::next n4;
+ typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
+ ///
+ public:
+ typedef typename apply_wrap3<
+ f_
+ , typename t1::type, typename t2::type, typename t3::type
+ >::type type;
+
+ };
+};
+
+namespace aux {
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename U1
+ , typename U2, typename U3, typename U4, typename U5
+ >
+struct resolve_bind_arg<
+ bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
+ >
+{
+ typedef bind3< F,T1,T2,T3 > f_;
+ typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ >
+struct bind4
+{
+ template<
+ typename U1, typename U2, typename U3, typename U4, typename U5
+ >
+ struct apply
+ {
+ private:
+ typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+ typedef typename r0::type a0;
+ typedef typename r0::next n1;
+ typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+ ///
+ typedef aux::replace_unnamed_arg< T1,n1 > r1;
+ typedef typename r1::type a1;
+ typedef typename r1::next n2;
+ typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+ ///
+ typedef aux::replace_unnamed_arg< T2,n2 > r2;
+ typedef typename r2::type a2;
+ typedef typename r2::next n3;
+ typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
+ ///
+ typedef aux::replace_unnamed_arg< T3,n3 > r3;
+ typedef typename r3::type a3;
+ typedef typename r3::next n4;
+ typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
+ ///
+ typedef aux::replace_unnamed_arg< T4,n4 > r4;
+ typedef typename r4::type a4;
+ typedef typename r4::next n5;
+ typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
+ ///
+ public:
+ typedef typename apply_wrap4<
+ f_
+ , typename t1::type, typename t2::type, typename t3::type
+ , typename t4::type
+ >::type type;
+
+ };
+};
+
+namespace aux {
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ , typename U1, typename U2, typename U3, typename U4, typename U5
+ >
+struct resolve_bind_arg<
+ bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
+ >
+{
+ typedef bind4< F,T1,T2,T3,T4 > f_;
+ typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ , typename T5
+ >
+struct bind5
+{
+ template<
+ typename U1, typename U2, typename U3, typename U4, typename U5
+ >
+ struct apply
+ {
+ private:
+ typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
+ typedef typename r0::type a0;
+ typedef typename r0::next n1;
+ typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
+ ///
+ typedef aux::replace_unnamed_arg< T1,n1 > r1;
+ typedef typename r1::type a1;
+ typedef typename r1::next n2;
+ typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
+ ///
+ typedef aux::replace_unnamed_arg< T2,n2 > r2;
+ typedef typename r2::type a2;
+ typedef typename r2::next n3;
+ typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
+ ///
+ typedef aux::replace_unnamed_arg< T3,n3 > r3;
+ typedef typename r3::type a3;
+ typedef typename r3::next n4;
+ typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
+ ///
+ typedef aux::replace_unnamed_arg< T4,n4 > r4;
+ typedef typename r4::type a4;
+ typedef typename r4::next n5;
+ typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
+ ///
+ typedef aux::replace_unnamed_arg< T5,n5 > r5;
+ typedef typename r5::type a5;
+ typedef typename r5::next n6;
+ typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
+ ///
+ public:
+ typedef typename apply_wrap5<
+ f_
+ , typename t1::type, typename t2::type, typename t3::type
+ , typename t4::type, typename t5::type
+ >::type type;
+
+ };
+};
+
+namespace aux {
+
+template<
+ typename F, typename T1, typename T2, typename T3, typename T4
+ , typename T5, typename U1, typename U2, typename U3, typename U4
+ , typename U5
+ >
+struct resolve_bind_arg<
+ bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
+ >
+{
+ typedef bind5< F,T1,T2,T3,T4,T5 > f_;
+ typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
+};
+
+} // namespace aux
+
+BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
+}}
+