1*f8a1b7d9SAlexander Kabaev // TR1 code repetition for bind -*- C++ -*- 2*f8a1b7d9SAlexander Kabaev 3*f8a1b7d9SAlexander Kabaev // Copyright (C) 2005 Free Software Foundation, Inc. 4*f8a1b7d9SAlexander Kabaev // Written by Douglas Gregor <doug.gregor -at- gmail.com> 5*f8a1b7d9SAlexander Kabaev // 6*f8a1b7d9SAlexander Kabaev // This file is part of the GNU ISO C++ Library. This library is free 7*f8a1b7d9SAlexander Kabaev // software; you can redistribute it and/or modify it under the 8*f8a1b7d9SAlexander Kabaev // terms of the GNU General Public License as published by the 9*f8a1b7d9SAlexander Kabaev // Free Software Foundation; either version 2, or (at your option) 10*f8a1b7d9SAlexander Kabaev // any later version. 11*f8a1b7d9SAlexander Kabaev 12*f8a1b7d9SAlexander Kabaev // This library is distributed in the hope that it will be useful, 13*f8a1b7d9SAlexander Kabaev // but WITHOUT ANY WARRANTY; without even the implied warranty of 14*f8a1b7d9SAlexander Kabaev // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*f8a1b7d9SAlexander Kabaev // GNU General Public License for more details. 16*f8a1b7d9SAlexander Kabaev 17*f8a1b7d9SAlexander Kabaev // You should have received a copy of the GNU General Public License along 18*f8a1b7d9SAlexander Kabaev // with this library; see the file COPYING. If not, write to the Free 19*f8a1b7d9SAlexander Kabaev // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 20*f8a1b7d9SAlexander Kabaev // USA. 21*f8a1b7d9SAlexander Kabaev 22*f8a1b7d9SAlexander Kabaev // As a special exception, you may use this file as part of a free software 23*f8a1b7d9SAlexander Kabaev // library without restriction. Specifically, if other files instantiate 24*f8a1b7d9SAlexander Kabaev // templates or use macros or inline functions from this file, or you compile 25*f8a1b7d9SAlexander Kabaev // this file and link it with other files to produce an executable, this 26*f8a1b7d9SAlexander Kabaev // file does not by itself cause the resulting executable to be covered by 27*f8a1b7d9SAlexander Kabaev // the GNU General Public License. This exception does not however 28*f8a1b7d9SAlexander Kabaev // invalidate any other reasons why the executable file might be covered by 29*f8a1b7d9SAlexander Kabaev // the GNU General Public License. 30*f8a1b7d9SAlexander Kabaev 31*f8a1b7d9SAlexander Kabaev /** @file tr1/bind_repeat.h 32*f8a1b7d9SAlexander Kabaev * This is an internal header file, included by other library headers. 33*f8a1b7d9SAlexander Kabaev * You should not attempt to use it directly. 34*f8a1b7d9SAlexander Kabaev */ 35*f8a1b7d9SAlexander Kabaev 36*f8a1b7d9SAlexander Kabaev #ifndef _GLIBCXX_BIND_REPEAT_HEADER 37*f8a1b7d9SAlexander Kabaev # error Internal error: _GLIBCXX_BIND_REPEAT_HEADER must be set 38*f8a1b7d9SAlexander Kabaev #endif /* _GLIBCXX_BIND_REPEAT_HEADER */ 39*f8a1b7d9SAlexander Kabaev 40*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 0 41*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA 42*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS 43*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS 44*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS 45*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS 46*f8a1b7d9SAlexander Kabaev # include _GLIBCXX_BIND_REPEAT_HEADER 47*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 48*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 49*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 50*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 51*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 52*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 53*f8a1b7d9SAlexander Kabaev 54*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 1 55*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 56*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1 57*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1 58*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1 59*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1 60*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 61*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 62*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 63*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 64*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 65*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 66*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 67*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 2 68*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 69*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2 70*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2 71*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2 72*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2 73*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 74*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 75*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 76*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 77*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 78*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 79*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 80*f8a1b7d9SAlexander Kabaev 81*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 3 82*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 83*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3 84*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3 85*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3 86*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2, __u3 87*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 88*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 89*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 90*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 91*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 92*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 93*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 94*f8a1b7d9SAlexander Kabaev 95*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 4 96*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 97*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4 98*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4 99*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4 100*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4 101*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 102*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 103*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 104*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 105*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 106*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 107*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 108*f8a1b7d9SAlexander Kabaev 109*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 5 110*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 111*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5 112*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5 113*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5 114*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5 115*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 116*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 117*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 118*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 119*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 120*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 121*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 122*f8a1b7d9SAlexander Kabaev 123*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 6 124*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 125*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6 126*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6 127*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6 128*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6 129*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 130*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 131*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 132*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 133*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 134*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 135*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 136*f8a1b7d9SAlexander Kabaev 137*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 7 138*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 139*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7 140*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7 141*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7 142*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7 143*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 144*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 145*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 146*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 147*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 148*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 149*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 150*f8a1b7d9SAlexander Kabaev 151*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 8 152*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 153*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8 154*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8 155*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8 156*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8 157*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 158*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 159*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 160*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 161*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 162*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 163*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 164*f8a1b7d9SAlexander Kabaev 165*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 9 166*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 167*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9 168*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9 169*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8, _U9& __u9 170*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8, __u9 171*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 172*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 173*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 174*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 175*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 176*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 177*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 178*f8a1b7d9SAlexander Kabaev 179*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_NUM_ARGS 10 180*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_COMMA , 181*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10 182*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10 183*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8, _U9& __u9, _U10& __u10 184*f8a1b7d9SAlexander Kabaev #define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8, __u9, __u10 185*f8a1b7d9SAlexander Kabaev #include _GLIBCXX_BIND_REPEAT_HEADER 186*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_ARGS 187*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_PARAMS 188*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_ARGS 189*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_TEMPLATE_PARAMS 190*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_COMMA 191*f8a1b7d9SAlexander Kabaev #undef _GLIBCXX_BIND_NUM_ARGS 192*f8a1b7d9SAlexander Kabaev 193