summaryrefslogtreecommitdiff
path: root/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_20.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_20.hpp')
-rw-r--r--boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_20.hpp726
1 files changed, 726 insertions, 0 deletions
diff --git a/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_20.hpp b/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_20.hpp
new file mode 100644
index 0000000000..d399281b05
--- /dev/null
+++ b/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_20.hpp
@@ -0,0 +1,726 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 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)
+==============================================================================*/
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1
+ , typename A0 , typename A1
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 2
+ , RT
+ , RT(*)(T0 , T1)
+ >
+ , A0 , A1
+ >::type const
+ bind(
+ RT(*f)(T0 , T1)
+ , A0 const& a0 , A1 const& a1
+ )
+ {
+ typedef detail::function_ptr<
+ 2
+ , RT
+ , RT(*)(T0 , T1)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1
+ >::make(
+ fp_type(f)
+ , a0 , a1
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2
+ , typename A0 , typename A1 , typename A2
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 3
+ , RT
+ , RT(*)(T0 , T1 , T2)
+ >
+ , A0 , A1 , A2
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2
+ )
+ {
+ typedef detail::function_ptr<
+ 3
+ , RT
+ , RT(*)(T0 , T1 , T2)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3
+ , typename A0 , typename A1 , typename A2 , typename A3
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 4
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3)
+ >
+ , A0 , A1 , A2 , A3
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
+ )
+ {
+ typedef detail::function_ptr<
+ 4
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 5
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4)
+ >
+ , A0 , A1 , A2 , A3 , A4
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
+ )
+ {
+ typedef detail::function_ptr<
+ 5
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 6
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
+ )
+ {
+ typedef detail::function_ptr<
+ 6
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 7
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
+ )
+ {
+ typedef detail::function_ptr<
+ 7
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 8
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
+ )
+ {
+ typedef detail::function_ptr<
+ 8
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 9
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8
+ )
+ {
+ typedef detail::function_ptr<
+ 9
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 10
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9
+ )
+ {
+ typedef detail::function_ptr<
+ 10
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 11
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10
+ )
+ {
+ typedef detail::function_ptr<
+ 11
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 12
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11
+ )
+ {
+ typedef detail::function_ptr<
+ 12
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 13
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12
+ )
+ {
+ typedef detail::function_ptr<
+ 13
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 14
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13
+ )
+ {
+ typedef detail::function_ptr<
+ 14
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 15
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14
+ )
+ {
+ typedef detail::function_ptr<
+ 15
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 16
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15
+ )
+ {
+ typedef detail::function_ptr<
+ 16
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 17
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16
+ )
+ {
+ typedef detail::function_ptr<
+ 17
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 18
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17
+ )
+ {
+ typedef detail::function_ptr<
+ 18
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17
+ );
+ }
+
+
+
+
+
+
+
+ template <
+ typename RT
+ , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18
+ , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ 19
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
+ >
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::type const
+ bind(
+ RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
+ , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18
+ )
+ {
+ typedef detail::function_ptr<
+ 19
+ , RT
+ , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
+ >::make(
+ fp_type(f)
+ , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18
+ );
+ }