A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
type-traits.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2007 INRIA
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
*/
19
20
#ifndef TYPE_TRAITS_H
21
#define TYPE_TRAITS_H
22
24
template
<
typename
T>
25
struct
TypeTraits
26
{
27
private
:
28
struct
NullType
{};
29
template
<
typename
U>
struct
UnConst
30
{
31
typedef
U
Result
;
32
};
33
template
<
typename
U>
struct
UnConst
<const U>
34
{
35
typedef
U
Result
;
36
};
37
template
<
typename
U>
struct
ReferenceTraits
38
{
39
enum
{
IsReference
= 0 };
40
typedef
U
ReferencedType
;
41
};
42
template
<
typename
U>
struct
ReferenceTraits
<U&>
43
{
44
enum
{
IsReference
= 1 };
45
typedef
U
ReferencedType
;
46
};
47
template
<
typename
U>
struct
PointerTraits
48
{
49
enum
{
IsPointer
= 0};
50
typedef
U
PointeeType
;
51
};
52
template
<
typename
U>
struct
PointerTraits
<U *>
53
{
54
enum
{
IsPointer
= 1};
55
typedef
U
PointeeType
;
56
};
57
template
<
typename
U>
struct
FunctionPtrTraits
58
{
59
enum
{
IsFunctionPointer
= 0};
60
typedef
NullType
ReturnType
;
61
};
62
template
<
typename
U>
63
struct
FunctionPtrTraits
<U (*)(
void
)>
64
{
65
enum
{
IsFunctionPointer
= 1};
66
enum
{ nArgs = 0};
67
typedef
U
ReturnType
;
68
};
69
template
<
typename
U,
typename
V1>
70
struct
FunctionPtrTraits
<U (*)(V1)>
71
{
72
enum
{
IsFunctionPointer
= 1};
73
enum
{ nArgs = 1};
74
typedef
U
ReturnType
;
75
typedef
V1
Arg1Type
;
76
};
77
template
<
typename
U,
typename
V1,
typename
V2>
78
struct
FunctionPtrTraits
<U (*)(V1,V2)>
79
{
80
enum
{
IsFunctionPointer
= 1};
81
enum
{ nArgs = 2};
82
typedef
U
ReturnType
;
83
typedef
V1
Arg1Type
;
84
typedef
V2
Arg2Type
;
85
};
86
template
<
typename
U,
typename
V1,
typename
V2,
87
typename
V3>
88
struct
FunctionPtrTraits
<U (*)(V1,V2,V3)>
89
{
90
enum
{
IsFunctionPointer
= 1};
91
enum
{ nArgs = 3};
92
typedef
U
ReturnType
;
93
typedef
V1
Arg1Type
;
94
typedef
V2
Arg2Type
;
95
typedef
V3
Arg3Type
;
96
};
97
template
<
typename
U,
typename
V1,
typename
V2,
98
typename
V3,
typename
V4>
99
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4)>
100
{
101
enum
{
IsFunctionPointer
= 1};
102
enum
{ nArgs = 4};
103
typedef
U
ReturnType
;
104
typedef
V1
Arg1Type
;
105
typedef
V2
Arg2Type
;
106
typedef
V3
Arg3Type
;
107
typedef
V4
Arg4Type
;
108
};
109
template
<
typename
U,
typename
V1,
typename
V2,
110
typename
V3,
typename
V4,
111
typename
V5>
112
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4,V5)>
113
{
114
enum
{
IsFunctionPointer
= 1};
115
enum
{ nArgs = 5};
116
typedef
U
ReturnType
;
117
typedef
V1
Arg1Type
;
118
typedef
V2
Arg2Type
;
119
typedef
V3
Arg3Type
;
120
typedef
V4
Arg4Type
;
121
typedef
V5
Arg5Type
;
122
};
123
template
<
typename
U,
typename
V1,
typename
V2,
124
typename
V3,
typename
V4,
125
typename
V5,
typename
V6>
126
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4,V5,V6)>
127
{
128
enum
{
IsFunctionPointer
= 1};
129
enum
{ nArgs = 6};
130
typedef
U
ReturnType
;
131
typedef
V1
Arg1Type
;
132
typedef
V2
Arg2Type
;
133
typedef
V3
Arg3Type
;
134
typedef
V4
Arg4Type
;
135
typedef
V5
Arg5Type
;
136
typedef
V6
Arg6Type
;
137
};
138
template
<
typename
U>
struct
PtrToMemberTraits
139
{
140
enum
{
IsPointerToMember
= 0};
141
};
142
template
<
typename
U,
typename
V>
143
struct
PtrToMemberTraits
<U (V::*) (void)>
144
{
145
enum
{
IsPointerToMember
= 1};
146
enum
{ nArgs = 0};
147
typedef
U
ReturnType
;
148
};
149
template
<
typename
U,
typename
V>
150
struct
PtrToMemberTraits
<U (V::*) (void) const>
151
{
152
enum
{
IsPointerToMember
= 1};
153
enum
{ nArgs = 0};
154
typedef
U
ReturnType
;
155
};
156
template
<
typename
U,
typename
V,
typename
W1>
157
struct
PtrToMemberTraits
<U (V::*) (W1)>
158
{
159
enum
{
IsPointerToMember
= 1};
160
enum
{ nArgs = 1};
161
typedef
U
ReturnType
;
162
typedef
W1
Arg1Type
;
163
};
164
template
<
typename
U,
typename
V,
typename
W1>
165
struct
PtrToMemberTraits
<U (V::*) (W1) const>
166
{
167
enum
{
IsPointerToMember
= 1};
168
enum
{ nArgs = 1};
169
typedef
U
ReturnType
;
170
typedef
W1
Arg1Type
;
171
};
172
template
<
typename
U,
typename
V,
typename
W1,
typename
W2>
173
struct
PtrToMemberTraits
<U (V::*) (W1,W2)>
174
{
175
enum
{
IsPointerToMember
= 1};
176
enum
{ nArgs = 2};
177
typedef
U
ReturnType
;
178
typedef
W1
Arg1Type
;
179
typedef
W2
Arg2Type
;
180
};
181
template
<
typename
U,
typename
V,
typename
W1,
typename
W2>
182
struct
PtrToMemberTraits
<U (V::*) (W1,W2) const>
183
{
184
enum
{
IsPointerToMember
= 1};
185
enum
{ nArgs = 2};
186
typedef
U
ReturnType
;
187
typedef
W1
Arg1Type
;
188
typedef
W2
Arg2Type
;
189
};
190
template
<
typename
U,
typename
V,
191
typename
W1,
typename
W2,
192
typename
W3>
193
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3)>
194
{
195
enum
{
IsPointerToMember
= 1};
196
enum
{ nArgs = 3};
197
typedef
U
ReturnType
;
198
typedef
W1
Arg1Type
;
199
typedef
W2
Arg2Type
;
200
typedef
W3
Arg3Type
;
201
};
202
template
<
typename
U,
typename
V,
203
typename
W1,
typename
W2,
204
typename
W3>
205
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3) const>
206
{
207
enum
{
IsPointerToMember
= 1};
208
enum
{ nArgs = 3};
209
typedef
U
ReturnType
;
210
typedef
W1
Arg1Type
;
211
typedef
W2
Arg2Type
;
212
typedef
W3
Arg3Type
;
213
};
214
template
<
typename
U,
typename
V,
215
typename
W1,
typename
W2,
216
typename
W3,
typename
W4>
217
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4)>
218
{
219
enum
{
IsPointerToMember
= 1};
220
enum
{ nArgs = 4};
221
typedef
U
ReturnType
;
222
typedef
W1
Arg1Type
;
223
typedef
W2
Arg2Type
;
224
typedef
W3
Arg3Type
;
225
typedef
W4
Arg4Type
;
226
};
227
template
<
typename
U,
typename
V,
228
typename
W1,
typename
W2,
229
typename
W3,
typename
W4>
230
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4) const>
231
{
232
enum
{
IsPointerToMember
= 1};
233
enum
{ nArgs = 4};
234
typedef
U
ReturnType
;
235
typedef
W1
Arg1Type
;
236
typedef
W2
Arg2Type
;
237
typedef
W3
Arg3Type
;
238
typedef
W4
Arg4Type
;
239
};
240
template
<
typename
U,
typename
V,
241
typename
W1,
typename
W2,
242
typename
W3,
typename
W4,
243
typename
W5>
244
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4,W5)>
245
{
246
enum
{
IsPointerToMember
= 1};
247
enum
{ nArgs = 5};
248
typedef
U
ReturnType
;
249
typedef
W1
Arg1Type
;
250
typedef
W2
Arg2Type
;
251
typedef
W3
Arg3Type
;
252
typedef
W4
Arg4Type
;
253
typedef
W5
Arg5Type
;
254
};
255
template
<
typename
U,
typename
V,
256
typename
W1,
typename
W2,
257
typename
W3,
typename
W4,
258
typename
W5>
259
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4,W5) const>
260
{
261
enum
{
IsPointerToMember
= 1};
262
enum
{ nArgs = 5};
263
typedef
U
ReturnType
;
264
typedef
W1
Arg1Type
;
265
typedef
W2
Arg2Type
;
266
typedef
W3
Arg3Type
;
267
typedef
W4
Arg4Type
;
268
typedef
W5
Arg5Type
;
269
};
270
template
<
typename
U,
typename
V,
271
typename
W1,
typename
W2,
272
typename
W3,
typename
W4,
273
typename
W5,
typename
W6>
274
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4,W5,W6)>
275
{
276
enum
{
IsPointerToMember
= 1};
277
enum
{ nArgs = 6};
278
typedef
U
ReturnType
;
279
typedef
W1
Arg1Type
;
280
typedef
W2
Arg2Type
;
281
typedef
W3
Arg3Type
;
282
typedef
W4
Arg4Type
;
283
typedef
W5
Arg5Type
;
284
typedef
W6
Arg6Type
;
285
};
286
template
<
typename
U,
typename
V,
287
typename
W1,
typename
W2,
288
typename
W3,
typename
W4,
289
typename
W5,
typename
W6>
290
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4,W5,W6) const>
291
{
292
enum
{
IsPointerToMember
= 1};
293
enum
{ nArgs = 6};
294
typedef
U
ReturnType
;
295
typedef
W1
Arg1Type
;
296
typedef
W2
Arg2Type
;
297
typedef
W3
Arg3Type
;
298
typedef
W4
Arg4Type
;
299
typedef
W5
Arg5Type
;
300
typedef
W6
Arg6Type
;
301
};
302
303
public
:
304
typedef
typename
UnConst<T>::Result
NonConstType
;
305
typedef
typename
ReferenceTraits<T>::ReferencedType
ReferencedType
;
306
typedef
typename
PointerTraits<T>::PointeeType
PointeeType
;
307
enum
{
IsPointerToMember
= PtrToMemberTraits<T>::IsPointerToMember};
308
enum
{
IsPointer
= PointerTraits<T>::IsPointer};
309
enum
{
IsReference
= ReferenceTraits<T>::IsReference};
310
enum
{
IsFunctionPointer
= FunctionPtrTraits<T>::IsFunctionPointer};
311
typedef
PtrToMemberTraits<T>
PointerToMemberTraits
;
312
typedef
FunctionPtrTraits<T>
FunctionPointerTraits
;
313
};
314
315
316
#endif
/* TYPE_TRAITS_H */
TypeTraits::PtrToMemberTraits::IsPointerToMember
Definition:
type-traits.h:140
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:107
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg6Type
V6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:136
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:209
TypeTraits::UnConst::Result
U Result
Non-const result type.
Definition:
type-traits.h:31
TypeTraits::PointerTraits
< Non-pointer type traits
Definition:
type-traits.h:47
TypeTraits::FunctionPtrTraits::IsFunctionPointer
Definition:
type-traits.h:59
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:294
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:251
TypeTraits::PtrToMemberTraits< U(V::*)(W1)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:161
TypeTraits::PtrToMemberTraits
< Pointer to member type traits
Definition:
type-traits.h:138
TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:83
TypeTraits::FunctionPtrTraits< U(*)(void)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:67
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:252
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg5Type
V5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:135
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:279
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:266
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:199
TypeTraits::FunctionPtrTraits< U(*)(V1)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:75
TypeTraits::IsPointer
Definition:
type-traits.h:308
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:197
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:105
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:186
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:236
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:268
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:267
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:188
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:130
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:299
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:134
TypeTraits::FunctionPtrTraits< U(*)(V1)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:74
TypeTraits::PtrToMemberTraits< U(V::*)(W1) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:170
TypeTraits::IsFunctionPointer
Definition:
type-traits.h:310
TypeTraits::PtrToMemberTraits< U(V::*)(void)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:147
TypeTraits::PointerToMemberTraits
PtrToMemberTraits< T > PointerToMemberTraits
Pointer to member traits type.
Definition:
type-traits.h:311
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg6Type
W6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:284
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:131
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:210
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:281
TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:84
TypeTraits::PointerTraits< U * >::PointeeType
U PointeeType
Pointer result type.
Definition:
type-traits.h:55
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:263
TypeTraits::FunctionPtrTraits
< Non-function pointer type traits
Definition:
type-traits.h:57
TypeTraits::NullType
Null value type traits.
Definition:
type-traits.h:28
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:283
TypeTraits::ReferenceTraits< U & >::ReferencedType
U ReferencedType
Referenced result type.
Definition:
type-traits.h:45
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:198
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:118
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:178
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:116
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:265
TypeTraits::ReferenceTraits::IsReference
Non-reference value.
Definition:
type-traits.h:39
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:187
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:223
TypeTraits::PtrToMemberTraits< U(V::*)(W1) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:169
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:238
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:94
TypeTraits::PointerTraits::PointeeType
U PointeeType
Non-pointer result type.
Definition:
type-traits.h:50
TypeTraits::ReferencedType
ReferenceTraits< T >::ReferencedType ReferencedType
Referenced type.
Definition:
type-traits.h:305
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:295
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:264
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:120
TypeTraits::FunctionPointerTraits
FunctionPtrTraits< T > FunctionPointerTraits
Function pointer traits.
Definition:
type-traits.h:312
TypeTraits::UnConst< const U >::Result
U Result
Non-const result type.
Definition:
type-traits.h:35
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:212
TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:82
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:117
TypeTraits::PtrToMemberTraits< U(V::*)(W1)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:162
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:296
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:200
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:282
TypeTraits::PointerTraits::IsPointer
Definition:
type-traits.h:49
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:297
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:179
TypeTraits::UnConst
< Non-const type
Definition:
type-traits.h:29
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:280
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:133
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:221
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:211
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg6Type
W6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:300
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:234
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:224
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:248
TypeTraits
Type trait reference values.
Definition:
type-traits.h:25
TypeTraits::PointeeType
PointerTraits< T >::PointeeType PointeeType
Pointee type.
Definition:
type-traits.h:306
TypeTraits::ReferenceTraits
< Non-reference type traits
Definition:
type-traits.h:37
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:235
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:103
TypeTraits::ReferenceTraits::ReferencedType
U ReferencedType
Non-referenced result type.
Definition:
type-traits.h:40
TypeTraits::IsPointerToMember
Definition:
type-traits.h:307
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:119
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:225
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:95
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg5Type
V5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:121
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:93
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:132
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:106
TypeTraits::NonConstType
UnConst< T >::Result NonConstType
Non-const type.
Definition:
type-traits.h:304
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:298
TypeTraits::FunctionPtrTraits::ReturnType
NullType ReturnType
Non-function pointer result type.
Definition:
type-traits.h:60
TypeTraits::PtrToMemberTraits< U(V::*)(void) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:154
TypeTraits::IsReference
Definition:
type-traits.h:309
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:237
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:249
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:104
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:222
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:253
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:250
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:278
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:177
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:92
src
core
model
type-traits.h
Generated on Thu Feb 5 2015 18:33:35 for ns-3 by
1.8.9.1