12ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson// Copyright 2010 The RE2 Authors. All Rights Reserved. 22ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson// Use of this source code is governed by a BSD-style 32ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson// license that can be found in the LICENSE file. 42ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 52ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson#ifndef RE2_VARIADIC_FUNCTION_H_ 62ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson#define RE2_VARIADIC_FUNCTION_H_ 72ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 82ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodsonnamespace re2 { 92ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 102ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodsontemplate <typename Result, typename Param0, typename Param1, typename Arg, 112ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result (*Func)(Param0, Param1, const Arg* const [], int count)> 122ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodsonclass VariadicFunction2 { 132ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson public: 142ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson VariadicFunction2() {} 152ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 162ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1) const { 172ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, 0, 0); 182ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 192ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 202ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0) const { 212ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0 }; 222ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 1); 232ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 242ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 252ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1) const { 262ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1 }; 272ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 2); 282ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 292ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 302ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 312ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2) const { 322ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2 }; 332ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 3); 342ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 352ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 362ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 372ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3) const { 382ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3 }; 392ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 4); 402ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 412ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 422ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 432ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4) const { 442ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4 }; 452ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 5); 462ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 472ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 482ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 492ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5) const { 502ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5 }; 512ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 6); 522ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 532ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 542ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 552ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 562ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6) const { 572ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6 }; 582ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 7); 592ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 602ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 612ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 622ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 632ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7) const { 642ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7 }; 652ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 8); 662ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 672ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 682ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 692ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 702ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8) const { 712ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8 }; 722ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 9); 732ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 742ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 752ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 762ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 772ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9) const { 782ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 792ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9 }; 802ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 10); 812ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 822ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 832ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 842ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 852ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 862ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10) const { 872ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 882ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10 }; 892ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 11); 902ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 912ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 922ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 932ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 942ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 952ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11) const { 962ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 972ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11 }; 982ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 12); 992ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1002ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1012ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1022ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1032ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1042ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12) const { 1052ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1062ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12 }; 1072ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 13); 1082ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1092ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1102ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1112ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1122ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1132ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13) const { 1142ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1152ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13 }; 1162ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 14); 1172ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1182ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1192ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1202ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1212ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1222ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 1232ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14) const { 1242ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1252ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14 }; 1262ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 15); 1272ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1282ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1292ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1302ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1312ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1322ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 1332ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15) const { 1342ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1352ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15 }; 1362ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 16); 1372ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1382ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1392ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1402ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1412ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1422ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 1432ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16) const { 1442ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1452ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16 }; 1462ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 17); 1472ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1482ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1492ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1502ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1512ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1522ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 1532ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17) const { 1542ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1552ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17 }; 1562ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 18); 1572ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1582ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1592ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1602ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1612ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1622ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 1632ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 1642ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18) const { 1652ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1662ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18 }; 1672ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 19); 1682ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1692ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1702ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1712ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1722ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1732ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 1742ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 1752ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19) const { 1762ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1772ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19 }; 1782ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 20); 1792ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1802ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1812ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1822ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1832ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1842ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 1852ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 1862ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20) const { 1872ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 1882ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, 1892ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a20 }; 1902ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 21); 1912ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 1922ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 1932ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 1942ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 1952ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 1962ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 1972ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 1982ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21) const { 1992ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 2002ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 2012ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21 }; 2022ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 22); 2032ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 2042ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 2052ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 2062ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 2072ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 2082ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 2092ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 2102ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 2112ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22) const { 2122ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 2132ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 2142ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22 }; 2152ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 23); 2162ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 2172ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 2182ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 2192ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 2202ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 2212ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 2222ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 2232ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 2242ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23) const { 2252ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 2262ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 2272ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23 }; 2282ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 24); 2292ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 2302ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 2312ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 2322ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 2332ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 2342ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 2352ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 2362ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 2372ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23, const Arg& a24) const { 2382ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 2392ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 2402ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23, &a24 }; 2412ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 25); 2422ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 2432ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 2442ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 2452ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 2462ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 2472ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 2482ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 2492ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 2502ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25) const { 2512ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 2522ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 2532ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23, &a24, &a25 }; 2542ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 26); 2552ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 2562ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 2572ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 2582ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 2592ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 2602ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 2612ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 2622ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 2632ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25, 2642ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a26) const { 2652ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 2662ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 2672ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23, &a24, &a25, &a26 }; 2682ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 27); 2692ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 2702ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 2712ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 2722ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 2732ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 2742ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 2752ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 2762ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 2772ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25, 2782ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a26, const Arg& a27) const { 2792ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 2802ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 2812ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23, &a24, &a25, &a26, &a27 }; 2822ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 28); 2832ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 2842ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 2852ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 2862ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 2872ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 2882ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 2892ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 2902ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 2912ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25, 2922ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a26, const Arg& a27, const Arg& a28) const { 2932ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 2942ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 2952ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23, &a24, &a25, &a26, &a27, &a28 }; 2962ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 29); 2972ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 2982ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 2992ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 3002ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 3012ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 3022ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 3032ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 3042ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 3052ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25, 3062ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a26, const Arg& a27, const Arg& a28, const Arg& a29) const { 3072ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 3082ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 3092ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23, &a24, &a25, &a26, &a27, &a28, &a29 }; 3102ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 30); 3112ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 3122ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 3132ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 3142ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 3152ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 3162ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 3172ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 3182ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 3192ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25, 3202ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a26, const Arg& a27, const Arg& a28, const Arg& a29, 3212ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a30) const { 3222ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 3232ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 3242ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23, &a24, &a25, &a26, &a27, &a28, &a29, &a30 }; 3252ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 31); 3262ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 3272ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 3282ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson Result operator()(Param0 p0, Param1 p1, const Arg& a0, const Arg& a1, 3292ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a2, const Arg& a3, const Arg& a4, const Arg& a5, 3302ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a6, const Arg& a7, const Arg& a8, const Arg& a9, 3312ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a10, const Arg& a11, const Arg& a12, const Arg& a13, 3322ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a14, const Arg& a15, const Arg& a16, const Arg& a17, 3332ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a18, const Arg& a19, const Arg& a20, const Arg& a21, 3342ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a22, const Arg& a23, const Arg& a24, const Arg& a25, 3352ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a26, const Arg& a27, const Arg& a28, const Arg& a29, 3362ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg& a30, const Arg& a31) const { 3372ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson const Arg* const args[] = { &a0, &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, 3382ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a9, &a10, &a11, &a12, &a13, &a14, &a15, &a16, &a17, &a18, &a19, &a20, 3392ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson &a21, &a22, &a23, &a24, &a25, &a26, &a27, &a28, &a29, &a30, &a31 }; 3402ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson return Func(p0, p1, args, 32); 3412ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson } 3422ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson}; 3432ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 3442ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson} // namespace re2 3452ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson 3462ee91b4af4353b9e6a9d591c32fedfc58fd4ef35Ian Hodson#endif // RE2_VARIADIC_FUNCTION_H_ 347