50#ifndef LASS_GUARDIAN_OF_INCLUSION_META_IS_MEMBER_H
51#define LASS_GUARDIAN_OF_INCLUSION_META_IS_MEMBER_H
64template <
typename R>
struct IsMember : meta::False {};
65template <
typename R>
struct IsConstMember : meta::False {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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 {};
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
Library for Assembled Shared Sources.