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