Library of Assembled Shared Sources
is_member.h
Go to the documentation of this file.
1/*
2 * *** ATTENTION! DO NOT MODIFY THIS FILE DIRECTLY! ***
3 *
4 * It has automatically been generated from is_member.tmpl.h
5 * by param_expander.py on Mon Oct 6 22:51:39 2025.
6 */
7
8/** @file
9 * @author Bram de Greve (bram@cocamware.com)
10 * @author Tom De Muer (tom@cocamware.com)
11 *
12 * *** BEGIN LICENSE INFORMATION ***
13 *
14 * The contents of this file are subject to the Common Public Attribution License
15 * Version 1.0 (the "License"); you may not use this file except in compliance with
16 * the License. You may obtain a copy of the License at
17 * http://lass.sourceforge.net/cpal-license. The License is based on the
18 * Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover
19 * use of software over a computer network and provide for limited attribution for
20 * the Original Developer. In addition, Exhibit A has been modified to be consistent
21 * with Exhibit B.
22 *
23 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
24 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific
25 * language governing rights and limitations under the License.
26 *
27 * The Original Code is LASS - Library of Assembled Shared Sources.
28 *
29 * The Initial Developer of the Original Code is Bram de Greve and Tom De Muer.
30 * The Original Developer is the Initial Developer.
31 *
32 * All portions of the code written by the Initial Developer are:
33 * Copyright (C) 2004-2011 the Initial Developer.
34 * All Rights Reserved.
35 *
36 * Contributor(s):
37 *
38 * Alternatively, the contents of this file may be used under the terms of the
39 * GNU General Public License Version 2 or later (the GPL), in which case the
40 * provisions of GPL are applicable instead of those above. If you wish to allow use
41 * of your version of this file only under the terms of the GPL and not to allow
42 * others to use your version of this file under the CPAL, indicate your decision by
43 * deleting the provisions above and replace them with the notice and other
44 * provisions required by the GPL License. If you do not delete the provisions above,
45 * a recipient may use your version of this file under either the CPAL or the GPL.
46 *
47 * *** END LICENSE INFORMATION ***
48 */
49
50#ifndef LASS_GUARDIAN_OF_INCLUSION_META_IS_MEMBER_H
51#define LASS_GUARDIAN_OF_INCLUSION_META_IS_MEMBER_H
52
53#include "meta_common.h"
54#include "bool.h"
55#include "is_const.h"
56
57namespace lass
58{
59namespace meta
60{
61
62// following _templates_ work on types
63
64template <typename R> struct IsMember : meta::False {};
65template <typename R> struct IsConstMember : meta::False {};
66
67template <typename R, typename C > struct IsMember<R (C::*) ()> : meta::True {};
68template <typename R, typename C > struct IsMember<R (C::*) () const > : meta::True {};
69template <typename R, typename C > struct IsConstMember<R (C::*) () const > : meta::True {};
70
71
72template <typename R, typename C, typename P1 > struct IsMember<R (C::*) ( P1 )> : meta::True {};
73template <typename R, typename C, typename P1 > struct IsMember<R (C::*) ( P1 ) const > : meta::True {};
74template <typename R, typename C, typename P1 > struct IsConstMember<R (C::*) ( P1 ) const > : meta::True {};
75
76template <typename R, typename C, typename P1, typename P2 > struct IsMember<R (C::*) ( P1, P2 )> : meta::True {};
77template <typename R, typename C, typename P1, typename P2 > struct IsMember<R (C::*) ( P1, P2 ) const > : meta::True {};
78template <typename R, typename C, typename P1, typename P2 > struct IsConstMember<R (C::*) ( P1, P2 ) const > : meta::True {};
79
80template <typename R, typename C, typename P1, typename P2, typename P3 > struct IsMember<R (C::*) ( P1, P2, P3 )> : meta::True {};
81template <typename R, typename C, typename P1, typename P2, typename P3 > struct IsMember<R (C::*) ( P1, P2, P3 ) const > : meta::True {};
82template <typename R, typename C, typename P1, typename P2, typename P3 > struct IsConstMember<R (C::*) ( P1, P2, P3 ) const > : meta::True {};
83
84template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > struct IsMember<R (C::*) ( P1, P2, P3, P4 )> : meta::True {};
85template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > struct IsMember<R (C::*) ( P1, P2, P3, P4 ) const > : meta::True {};
86template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4 ) const > : meta::True {};
87
88template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5 )> : meta::True {};
89template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5 ) const > : meta::True {};
90template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5 ) const > : meta::True {};
91
92template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6 )> : meta::True {};
93template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6 ) const > : meta::True {};
94template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6 ) const > : meta::True {};
95
96template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7 )> : meta::True {};
97template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7 ) const > : meta::True {};
98template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7 ) const > : meta::True {};
99
100template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8 )> : meta::True {};
101template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8 ) const > : meta::True {};
102template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8 ) const > : meta::True {};
103
104template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9 )> : meta::True {};
105template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const > : meta::True {};
106template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const > : meta::True {};
107
108template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 )> : meta::True {};
109template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const > : meta::True {};
110template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const > : meta::True {};
111
112template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 )> : meta::True {};
113template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const > : meta::True {};
114template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const > : meta::True {};
115
116template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 )> : meta::True {};
117template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const > : meta::True {};
118template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const > : meta::True {};
119
120template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 )> : meta::True {};
121template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const > : meta::True {};
122template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const > : meta::True {};
123
124template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 )> : meta::True {};
125template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const > : meta::True {};
126template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const > : meta::True {};
127
128template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 )> : meta::True {};
129template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const > : meta::True {};
130template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const > : meta::True {};
131
132
133// following _functions_ work on instances
134
135template <typename R, typename C > inline bool isMember(R (C::*)() ) { return true; }
136template <typename R, typename C > inline bool isMember(R (C::*)() const ) { return true; }
137template <typename R, typename C > inline bool isConstMember(R (C::*)() ) { return false; }
138template <typename R, typename C > inline bool isConstMember(R (C::*)() const ) { return true; }
139// pseudo const members are either const members or free function with as first argument a
140// const argument
141
142template <typename R, typename C > inline bool isPseudoConstMember(R (C::*)() ) { return false; }
143template <typename R, typename C > inline bool isPseudoConstMember(R (C::*)() const ) { return true; }
144template <typename R, typename C > inline bool isPseudoConstMember(R (*)(C) ) { return IsConst<C>::value; }
145
146
147
148 template <typename R, typename C, typename P1 > inline bool isMember(R (C::*)( P1 ) ) { return true; }
149 template <typename R, typename C, typename P1 > inline bool isMember(R (C::*)( P1 ) const ) { return true; }
150 template <typename R, typename C, typename P1 > inline bool isConstMember(R (C::*)( P1 ) ) { return false; }
151 template <typename R, typename C, typename P1 > inline bool isConstMember(R (C::*)( P1 ) const ) { return true; }
152 template <typename R, typename C, typename P1 > inline bool isPseudoConstMember(R (C::*)( P1 ) ) { return false; }
153 template <typename R, typename C, typename P1 > inline bool isPseudoConstMember(R (C::*)( P1 ) const ) { return true; }
154 template <typename R, typename C, typename P1 > inline bool isPseudoConstMember(R (*)( C, P1 ) ) { return IsConst<C>::value; }
155
156 template <typename R, typename C, typename P1, typename P2 > inline bool isMember(R (C::*)( P1, P2 ) ) { return true; }
157 template <typename R, typename C, typename P1, typename P2 > inline bool isMember(R (C::*)( P1, P2 ) const ) { return true; }
158 template <typename R, typename C, typename P1, typename P2 > inline bool isConstMember(R (C::*)( P1, P2 ) ) { return false; }
159 template <typename R, typename C, typename P1, typename P2 > inline bool isConstMember(R (C::*)( P1, P2 ) const ) { return true; }
160 template <typename R, typename C, typename P1, typename P2 > inline bool isPseudoConstMember(R (C::*)( P1, P2 ) ) { return false; }
161 template <typename R, typename C, typename P1, typename P2 > inline bool isPseudoConstMember(R (C::*)( P1, P2 ) const ) { return true; }
162 template <typename R, typename C, typename P1, typename P2 > inline bool isPseudoConstMember(R (*)( C, P1, P2 ) ) { return IsConst<C>::value; }
163
164 template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isMember(R (C::*)( P1, P2, P3 ) ) { return true; }
165 template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isMember(R (C::*)( P1, P2, P3 ) const ) { return true; }
166 template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isConstMember(R (C::*)( P1, P2, P3 ) ) { return false; }
167 template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isConstMember(R (C::*)( P1, P2, P3 ) const ) { return true; }
168 template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3 ) ) { return false; }
169 template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3 ) const ) { return true; }
170 template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3 ) ) { return IsConst<C>::value; }
171
172 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isMember(R (C::*)( P1, P2, P3, P4 ) ) { return true; }
173 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isMember(R (C::*)( P1, P2, P3, P4 ) const ) { return true; }
174 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4 ) ) { return false; }
175 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4 ) const ) { return true; }
176 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4 ) ) { return false; }
177 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4 ) const ) { return true; }
178 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4 ) ) { return IsConst<C>::value; }
179
180 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5 ) ) { return true; }
181 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5 ) const ) { return true; }
182 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5 ) ) { return false; }
183 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5 ) const ) { return true; }
184 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5 ) ) { return false; }
185 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5 ) const ) { return true; }
186 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5 ) ) { return IsConst<C>::value; }
187
188 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) ) { return true; }
189 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) const ) { return true; }
190 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) ) { return false; }
191 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) const ) { return true; }
192 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) ) { return false; }
193 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) const ) { return true; }
194 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6 ) ) { return IsConst<C>::value; }
195
196 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) ) { return true; }
197 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) const ) { return true; }
198 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) ) { return false; }
199 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) const ) { return true; }
200 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) ) { return false; }
201 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) const ) { return true; }
202 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7 ) ) { return IsConst<C>::value; }
203
204 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) ) { return true; }
205 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) const ) { return true; }
206 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) ) { return false; }
207 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) const ) { return true; }
208 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) ) { return false; }
209 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) const ) { return true; }
210 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8 ) ) { return IsConst<C>::value; }
211
212 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) ) { return true; }
213 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const ) { return true; }
214 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) ) { return false; }
215 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const ) { return true; }
216 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) ) { return false; }
217 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const ) { return true; }
218 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9 ) ) { return IsConst<C>::value; }
219
220 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ) { return true; }
221 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const ) { return true; }
222 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ) { return false; }
223 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const ) { return true; }
224 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ) { return false; }
225 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const ) { return true; }
226 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ) { return IsConst<C>::value; }
227
228 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) ) { return true; }
229 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const ) { return true; }
230 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) ) { return false; }
231 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const ) { return true; }
232 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) ) { return false; }
233 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const ) { return true; }
234 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) ) { return IsConst<C>::value; }
235
236 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) ) { return true; }
237 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const ) { return true; }
238 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) ) { return false; }
239 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const ) { return true; }
240 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) ) { return false; }
241 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const ) { return true; }
242 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) ) { return IsConst<C>::value; }
243
244 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) ) { return true; }
245 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const ) { return true; }
246 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) ) { return false; }
247 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const ) { return true; }
248 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) ) { return false; }
249 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const ) { return true; }
250 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) ) { return IsConst<C>::value; }
251
252 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) ) { return true; }
253 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const ) { return true; }
254 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) ) { return false; }
255 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const ) { return true; }
256 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) ) { return false; }
257 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const ) { return true; }
258 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) ) { return IsConst<C>::value; }
259
260 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) ) { return true; }
261 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const ) { return true; }
262 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) ) { return false; }
263 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const ) { return true; }
264 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) ) { return false; }
265 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const ) { return true; }
266 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) ) { return IsConst<C>::value; }
267
268
269
270}
271}
272
273#endif
274
275// EOF
library for template meta programming
Definition bool.h:76
Library for Assembled Shared Sources.
Definition config.h:53