File indexing completed on 2025-02-23 09:47:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 template <
0015 typename RT
0016 , typename T0 , typename T1
0017 , typename A0 , typename A1
0018 >
0019 inline
0020 typename detail::expression::function_eval<
0021 detail::function_ptr<
0022 2
0023 , RT
0024 , RT(*)(T0 , T1)
0025 >
0026 , A0 , A1
0027 >::type const
0028 bind(
0029 RT(*f)(T0 , T1)
0030 , A0 const& a0 , A1 const& a1
0031 )
0032 {
0033 typedef detail::function_ptr<
0034 2
0035 , RT
0036 , RT(*)(T0 , T1)
0037 > fp_type;
0038 return
0039 detail::expression::function_eval<
0040 fp_type
0041 , A0 , A1
0042 >::make(
0043 fp_type(f)
0044 , a0 , a1
0045 );
0046 }
0047
0048
0049
0050
0051
0052
0053
0054 template <
0055 typename RT
0056 , typename T0 , typename T1 , typename T2
0057 , typename A0 , typename A1 , typename A2
0058 >
0059 inline
0060 typename detail::expression::function_eval<
0061 detail::function_ptr<
0062 3
0063 , RT
0064 , RT(*)(T0 , T1 , T2)
0065 >
0066 , A0 , A1 , A2
0067 >::type const
0068 bind(
0069 RT(*f)(T0 , T1 , T2)
0070 , A0 const& a0 , A1 const& a1 , A2 const& a2
0071 )
0072 {
0073 typedef detail::function_ptr<
0074 3
0075 , RT
0076 , RT(*)(T0 , T1 , T2)
0077 > fp_type;
0078 return
0079 detail::expression::function_eval<
0080 fp_type
0081 , A0 , A1 , A2
0082 >::make(
0083 fp_type(f)
0084 , a0 , a1 , a2
0085 );
0086 }
0087
0088
0089
0090
0091
0092
0093
0094 template <
0095 typename RT
0096 , typename T0 , typename T1 , typename T2 , typename T3
0097 , typename A0 , typename A1 , typename A2 , typename A3
0098 >
0099 inline
0100 typename detail::expression::function_eval<
0101 detail::function_ptr<
0102 4
0103 , RT
0104 , RT(*)(T0 , T1 , T2 , T3)
0105 >
0106 , A0 , A1 , A2 , A3
0107 >::type const
0108 bind(
0109 RT(*f)(T0 , T1 , T2 , T3)
0110 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3
0111 )
0112 {
0113 typedef detail::function_ptr<
0114 4
0115 , RT
0116 , RT(*)(T0 , T1 , T2 , T3)
0117 > fp_type;
0118 return
0119 detail::expression::function_eval<
0120 fp_type
0121 , A0 , A1 , A2 , A3
0122 >::make(
0123 fp_type(f)
0124 , a0 , a1 , a2 , a3
0125 );
0126 }
0127
0128
0129
0130
0131
0132
0133
0134 template <
0135 typename RT
0136 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4
0137 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4
0138 >
0139 inline
0140 typename detail::expression::function_eval<
0141 detail::function_ptr<
0142 5
0143 , RT
0144 , RT(*)(T0 , T1 , T2 , T3 , T4)
0145 >
0146 , A0 , A1 , A2 , A3 , A4
0147 >::type const
0148 bind(
0149 RT(*f)(T0 , T1 , T2 , T3 , T4)
0150 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4
0151 )
0152 {
0153 typedef detail::function_ptr<
0154 5
0155 , RT
0156 , RT(*)(T0 , T1 , T2 , T3 , T4)
0157 > fp_type;
0158 return
0159 detail::expression::function_eval<
0160 fp_type
0161 , A0 , A1 , A2 , A3 , A4
0162 >::make(
0163 fp_type(f)
0164 , a0 , a1 , a2 , a3 , a4
0165 );
0166 }
0167
0168
0169
0170
0171
0172
0173
0174 template <
0175 typename RT
0176 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5
0177 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
0178 >
0179 inline
0180 typename detail::expression::function_eval<
0181 detail::function_ptr<
0182 6
0183 , RT
0184 , RT(*)(T0 , T1 , T2 , T3 , T4 , T5)
0185 >
0186 , A0 , A1 , A2 , A3 , A4 , A5
0187 >::type const
0188 bind(
0189 RT(*f)(T0 , T1 , T2 , T3 , T4 , T5)
0190 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5
0191 )
0192 {
0193 typedef detail::function_ptr<
0194 6
0195 , RT
0196 , RT(*)(T0 , T1 , T2 , T3 , T4 , T5)
0197 > fp_type;
0198 return
0199 detail::expression::function_eval<
0200 fp_type
0201 , A0 , A1 , A2 , A3 , A4 , A5
0202 >::make(
0203 fp_type(f)
0204 , a0 , a1 , a2 , a3 , a4 , a5
0205 );
0206 }
0207
0208
0209
0210
0211
0212
0213
0214 template <
0215 typename RT
0216 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6
0217 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
0218 >
0219 inline
0220 typename detail::expression::function_eval<
0221 detail::function_ptr<
0222 7
0223 , RT
0224 , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0225 >
0226 , A0 , A1 , A2 , A3 , A4 , A5 , A6
0227 >::type const
0228 bind(
0229 RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0230 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6
0231 )
0232 {
0233 typedef detail::function_ptr<
0234 7
0235 , RT
0236 , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6)
0237 > fp_type;
0238 return
0239 detail::expression::function_eval<
0240 fp_type
0241 , A0 , A1 , A2 , A3 , A4 , A5 , A6
0242 >::make(
0243 fp_type(f)
0244 , a0 , a1 , a2 , a3 , a4 , a5 , a6
0245 );
0246 }
0247
0248
0249
0250
0251
0252
0253
0254 template <
0255 typename RT
0256 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7
0257 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
0258 >
0259 inline
0260 typename detail::expression::function_eval<
0261 detail::function_ptr<
0262 8
0263 , RT
0264 , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0265 >
0266 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0267 >::type const
0268 bind(
0269 RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0270 , A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7
0271 )
0272 {
0273 typedef detail::function_ptr<
0274 8
0275 , RT
0276 , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)
0277 > fp_type;
0278 return
0279 detail::expression::function_eval<
0280 fp_type
0281 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
0282 >::make(
0283 fp_type(f)
0284 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7
0285 );
0286 }
0287
0288
0289
0290
0291
0292
0293
0294 template <
0295 typename RT
0296 , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8
0297 , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
0298 >
0299 inline
0300 typename detail::expression::function_eval<
0301 detail::function_ptr<
0302 9
0303 , RT
0304 , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
0305 >
0306 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
0307 >::type const
0308 bind(
0309 RT(*f)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
0310 , 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
0311 )
0312 {
0313 typedef detail::function_ptr<
0314 9
0315 , RT
0316 , RT(*)(T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)
0317 > fp_type;
0318 return
0319 detail::expression::function_eval<
0320 fp_type
0321 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
0322 >::make(
0323 fp_type(f)
0324 , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8
0325 );
0326 }