This documentation is not the
Latest Release
.
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
23
#include "
ptr.h
"
24
36
template
<
typename
T>
37
struct
TypeTraits
38
{
39
private
:
41
struct
NullType
{};
46
template
<
typename
U>
struct
UnConst
47
{
48
typedef
U
Result
;
49
};
54
template
<
typename
U>
struct
UnConst
<const U>
55
{
56
typedef
U
Result
;
57
};
62
template
<
typename
U>
struct
ReferenceTraits
63
{
enum
{
IsReference
= 0 };
65
typedef
U
ReferencedType
;
66
};
71
template
<
typename
U>
struct
ReferenceTraits
<U&>
72
{
enum
{
IsReference
= 1 };
74
typedef
U
ReferencedType
;
75
};
80
template
<
typename
U>
struct
PointerTraits
81
{
enum
{
IsPointer
= 0,
83
IsPtr
= 0 };
84
typedef
U
PointeeType
;
85
};
90
template
<
typename
U>
struct
PointerTraits
<U *>
91
{
enum
{
IsPointer
= 1,
93
IsPtr
= 0 };
94
typedef
U
PointeeType
;
95
};
100
template
<
typename
U>
struct
PointerTraits
<
ns3
::Ptr<U> >
101
{
enum
{
IsPointer
= 0,
103
IsPtr
= 1 };
104
typedef
U
PointeeType
;
105
};
110
template
<
typename
U>
struct
Base
111
{
112
typedef
U
Type
;
113
};
118
template
<
typename
U>
struct
Base
<U &>
119
{
120
typedef
typename
Base<U>::Type
Type
;
121
};
126
template
<
typename
U>
struct
Base
<U *>
127
{
128
typedef
typename
Base<U>::Type
Type
;
129
};
134
template
<
typename
U>
struct
Base
<const U >
135
{
136
typedef
typename
Base<U>::Type
Type
;
137
};
142
template
<
typename
U>
struct
PtrBase
143
{
144
typedef
U
Type
;
145
};
150
template
<
typename
U>
struct
PtrBase
<
ns3
::Ptr<U> >
151
{
152
typedef
U
Type
;
153
};
158
template
<
typename
U>
struct
FunctionPtrTraits
159
{
enum
{
IsFunctionPointer
= 0 };
161
typedef
NullType
ReturnType
;
162
};
167
template
<
typename
U>
168
struct
FunctionPtrTraits
<U (*)(
void
)>
169
{
enum
{
IsFunctionPointer
= 1 };
enum
{ nArgs = 0 };
172
typedef
U
ReturnType
;
173
};
179
template
<
typename
U,
180
typename
V1>
181
struct
FunctionPtrTraits
<U (*)(V1)>
182
{
enum
{
IsFunctionPointer
= 1 };
enum
{ nArgs = 1 };
185
typedef
U
ReturnType
;
186
typedef
V1
Arg1Type
;
187
};
194
template
<
typename
U,
195
typename
V1,
typename
V2>
196
struct
FunctionPtrTraits
<U (*)(V1,V2)>
197
{
enum
{
IsFunctionPointer
= 1 };
enum
{ nArgs = 2 };
200
typedef
U
ReturnType
;
201
typedef
V1
Arg1Type
;
202
typedef
V2
Arg2Type
;
203
};
211
template
<
typename
U,
212
typename
V1,
typename
V2,
typename
V3>
213
struct
FunctionPtrTraits
<U (*)(V1,V2,V3)>
214
{
enum
{
IsFunctionPointer
= 1 };
enum
{ nArgs = 3 };
217
typedef
U
ReturnType
;
218
typedef
V1
Arg1Type
;
219
typedef
V2
Arg2Type
;
220
typedef
V3
Arg3Type
;
221
};
230
template
<
typename
U,
231
typename
V1,
typename
V2,
typename
V3,
232
typename
V4>
233
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4)>
234
{
enum
{
IsFunctionPointer
= 1 };
enum
{ nArgs = 4 };
237
typedef
U
ReturnType
;
238
typedef
V1
Arg1Type
;
239
typedef
V2
Arg2Type
;
240
typedef
V3
Arg3Type
;
241
typedef
V4
Arg4Type
;
242
};
252
template
<
typename
U,
253
typename
V1,
typename
V2,
typename
V3,
254
typename
V4,
typename
V5>
255
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4,V5)>
256
{
enum
{
IsFunctionPointer
= 1 };
enum
{ nArgs = 5 };
259
typedef
U
ReturnType
;
260
typedef
V1
Arg1Type
;
261
typedef
V2
Arg2Type
;
262
typedef
V3
Arg3Type
;
263
typedef
V4
Arg4Type
;
264
typedef
V5
Arg5Type
;
265
};
276
template
<
typename
U,
277
typename
V1,
typename
V2,
typename
V3,
278
typename
V4,
typename
V5,
typename
V6>
279
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4,V5,V6)>
280
{
enum
{
IsFunctionPointer
= 1 };
enum
{ nArgs = 6 };
283
typedef
U
ReturnType
;
284
typedef
V1
Arg1Type
;
285
typedef
V2
Arg2Type
;
286
typedef
V3
Arg3Type
;
287
typedef
V4
Arg4Type
;
288
typedef
V5
Arg5Type
;
289
typedef
V6
Arg6Type
;
290
};
295
template
<
typename
U>
struct
PtrToMemberTraits
296
{
enum
{
IsPointerToMember
= 0 };
298
};
304
template
<
typename
U,
typename
V>
305
struct
PtrToMemberTraits
<U (V::*) (void)>
306
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 0 };
309
typedef
U
ReturnType
;
310
};
316
template
<
typename
U,
typename
V>
317
struct
PtrToMemberTraits
<U (V::*) (void) const>
318
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 0 };
321
typedef
U
ReturnType
;
322
};
329
template
<
typename
U,
typename
V,
330
typename
W1>
331
struct
PtrToMemberTraits
<U (V::*) (W1)>
332
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 1 };
335
typedef
U
ReturnType
;
336
typedef
W1
Arg1Type
;
337
};
344
template
<
typename
U,
typename
V,
345
typename
W1>
346
struct
PtrToMemberTraits
<U (V::*) (W1) const>
347
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 1 };
350
typedef
U
ReturnType
;
351
typedef
W1
Arg1Type
;
352
};
360
template
<
typename
U,
typename
V,
361
typename
W1,
typename
W2>
362
struct
PtrToMemberTraits
<U (V::*) (W1,W2)>
363
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 2 };
366
typedef
U
ReturnType
;
367
typedef
W1
Arg1Type
;
368
typedef
W2
Arg2Type
;
369
};
377
template
<
typename
U,
typename
V,
378
typename
W1,
typename
W2>
379
struct
PtrToMemberTraits
<U (V::*) (W1,W2) const>
380
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 2 };
383
typedef
U
ReturnType
;
384
typedef
W1
Arg1Type
;
385
typedef
W2
Arg2Type
;
386
};
395
template
<
typename
U,
typename
V,
396
typename
W1,
typename
W2,
typename
W3>
397
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3)>
398
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 3 };
401
typedef
U
ReturnType
;
402
typedef
W1
Arg1Type
;
403
typedef
W2
Arg2Type
;
404
typedef
W3
Arg3Type
;
405
};
414
template
<
typename
U,
typename
V,
415
typename
W1,
typename
W2,
typename
W3>
416
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3) const>
417
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 3 };
420
typedef
U
ReturnType
;
421
typedef
W1
Arg1Type
;
422
typedef
W2
Arg2Type
;
423
typedef
W3
Arg3Type
;
424
};
434
template
<
typename
U,
typename
V,
435
typename
W1,
typename
W2,
typename
W3,
436
typename
W4>
437
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4)>
438
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 4 };
441
typedef
U
ReturnType
;
442
typedef
W1
Arg1Type
;
443
typedef
W2
Arg2Type
;
444
typedef
W3
Arg3Type
;
445
typedef
W4
Arg4Type
;
446
};
456
template
<
typename
U,
typename
V,
457
typename
W1,
typename
W2,
typename
W3,
458
typename
W4>
459
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4) const>
460
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 4 };
463
typedef
U
ReturnType
;
464
typedef
W1
Arg1Type
;
465
typedef
W2
Arg2Type
;
466
typedef
W3
Arg3Type
;
467
typedef
W4
Arg4Type
;
468
};
479
template
<
typename
U,
typename
V,
480
typename
W1,
typename
W2,
typename
W3,
481
typename
W4,
typename
W5>
482
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4,W5)>
483
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 5 };
486
typedef
U
ReturnType
;
487
typedef
W1
Arg1Type
;
488
typedef
W2
Arg2Type
;
489
typedef
W3
Arg3Type
;
490
typedef
W4
Arg4Type
;
491
typedef
W5
Arg5Type
;
492
};
503
template
<
typename
U,
typename
V,
504
typename
W1,
typename
W2,
typename
W3,
505
typename
W4,
typename
W5>
506
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4,W5) const>
507
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 5 };
510
typedef
U
ReturnType
;
511
typedef
W1
Arg1Type
;
512
typedef
W2
Arg2Type
;
513
typedef
W3
Arg3Type
;
514
typedef
W4
Arg4Type
;
515
typedef
W5
Arg5Type
;
516
};
528
template
<
typename
U,
typename
V,
529
typename
W1,
typename
W2,
typename
W3,
530
typename
W4,
typename
W5,
typename
W6>
531
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4,W5,W6)>
532
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 6 };
535
typedef
U
ReturnType
;
536
typedef
W1
Arg1Type
;
537
typedef
W2
Arg2Type
;
538
typedef
W3
Arg3Type
;
539
typedef
W4
Arg4Type
;
540
typedef
W5
Arg5Type
;
541
typedef
W6
Arg6Type
;
542
};
554
template
<
typename
U,
typename
V,
555
typename
W1,
typename
W2,
typename
W3,
556
typename
W4,
typename
W5,
typename
W6>
557
struct
PtrToMemberTraits
<U (V::*) (W1,W2,W3,W4,W5,W6) const>
558
{
enum
{
IsPointerToMember
= 1 };
enum
{ nArgs = 6 };
561
typedef
U
ReturnType
;
562
typedef
W1
Arg1Type
;
563
typedef
W2
Arg2Type
;
564
typedef
W3
Arg3Type
;
565
typedef
W4
Arg4Type
;
566
typedef
W5
Arg5Type
;
567
typedef
W6
Arg6Type
;
568
};
569
570
public
:
572
typedef
typename
UnConst<T>::Result
NonConstType
;
574
typedef
typename
ReferenceTraits<T>::ReferencedType
ReferencedType
;
576
typedef
typename
PointerTraits<T>::PointeeType
PointeeType
;
578
typedef
typename
Base<T>::Type
BaseType
;
580
typedef
typename
PtrBase<T>::Type
PtrBaseType
;
582
enum
{
584
IsPointerToMember
= PtrToMemberTraits<T>::IsPointerToMember,
586
IsPointer
= PointerTraits<T>::IsPointer,
588
IsPtr
= PointerTraits<T>::IsPtr,
590
IsReference
= ReferenceTraits<T>::IsReference,
592
IsFunctionPointer
= FunctionPtrTraits<T>::IsFunctionPointer
593
};
595
typedef
PtrToMemberTraits<T>
PointerToMemberTraits
;
597
typedef
FunctionPtrTraits<T>
FunctionPointerTraits
;
598
};
599
600
601
#endif
/* TYPE_TRAITS_H */
TypeTraits::Base< const U >::Type
Base< U >::Type Type
Base type.
Definition:
type-traits.h:136
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:241
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg6Type
V6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:289
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:420
TypeTraits::UnConst::Result
U Result
Non-const type.
Definition:
type-traits.h:48
TypeTraits::PointerTraits
Not a pointer type.
Definition:
type-traits.h:80
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:561
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:489
TypeTraits::PtrToMemberTraits< U(V::*)(W1)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:335
TypeTraits::PtrBaseType
PtrBase< T >::Type PtrBaseType
Ptr base type.
Definition:
type-traits.h:580
TypeTraits::PtrToMemberTraits
Not a pointer to member type.
Definition:
type-traits.h:295
ptr.h
Smart pointer implementation.
TypeTraits::IsPointer
Pointer predicate.
Definition:
type-traits.h:586
TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:201
TypeTraits::FunctionPtrTraits< U(*)(void)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:172
TypeTraits::PointerTraits< ns3::Ptr< U > >::PointeeType
U PointeeType
Pointee type.
Definition:
type-traits.h:104
TypeTraits::Base
Base type, after removing &, * and const.
Definition:
type-traits.h:110
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:490
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg5Type
V5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:288
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:536
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:513
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:403
TypeTraits::FunctionPtrTraits< U(*)(V1)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:186
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:401
TypeTraits::PtrToMemberTraits::IsPointerToMember
Not a pointer to member.
Definition:
type-traits.h:297
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:239
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:383
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:465
TypeTraits::PtrBase
Base type of a Ptr.
Definition:
type-traits.h:142
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:515
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:514
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:385
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:283
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:566
TypeTraits::BaseType
Base< T >::Type BaseType
Base type, after removing &, * and const.
Definition:
type-traits.h:578
TypeTraits::IsPointerToMember
Pointer to member predicate.
Definition:
type-traits.h:584
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:287
TypeTraits::FunctionPtrTraits< U(*)(V1)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:185
TypeTraits::FunctionPtrTraits::IsFunctionPointer
Not a function pointer.
Definition:
type-traits.h:160
TypeTraits::PtrToMemberTraits< U(V::*)(W1) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:351
TypeTraits::PtrToMemberTraits< U(V::*)(void)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:309
TypeTraits::PointerToMemberTraits
PtrToMemberTraits< T > PointerToMemberTraits
Pointer to member traits type.
Definition:
type-traits.h:595
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg6Type
W6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:541
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:284
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:421
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:538
TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:202
TypeTraits::PointerTraits< U * >::PointeeType
U PointeeType
Pointee type.
Definition:
type-traits.h:94
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:510
TypeTraits::FunctionPtrTraits
Not a function pointer type.
Definition:
type-traits.h:158
TypeTraits::NullType
Null value type traits.
Definition:
type-traits.h:41
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:540
TypeTraits::ReferenceTraits< U & >::ReferencedType
U ReferencedType
Base type.
Definition:
type-traits.h:74
TypeTraits::IsPtr
Ptr predicate.
Definition:
type-traits.h:588
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:402
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:261
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:367
TypeTraits::PointerTraits::IsPointer
Not a pointer type.
Definition:
type-traits.h:82
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:259
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:512
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:384
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:443
TypeTraits::PtrToMemberTraits< U(V::*)(W1) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:350
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:467
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:219
TypeTraits::PointerTraits::PointeeType
U PointeeType
Base type.
Definition:
type-traits.h:84
TypeTraits::ReferencedType
ReferenceTraits< T >::ReferencedType ReferencedType
Referenced type.
Definition:
type-traits.h:574
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:562
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:511
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
TypeTraits::Base::Type
U Type
Base type.
Definition:
type-traits.h:112
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:263
TypeTraits::Base< U & >::Type
Base< U >::Type Type
Base type.
Definition:
type-traits.h:120
TypeTraits::FunctionPointerTraits
FunctionPtrTraits< T > FunctionPointerTraits
Function pointer traits.
Definition:
type-traits.h:597
TypeTraits::UnConst< const U >::Result
U Result
Non-const type.
Definition:
type-traits.h:56
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:423
TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:200
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:260
TypeTraits::PtrToMemberTraits< U(V::*)(W1)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:336
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:563
TypeTraits::IsFunctionPointer
Function pointer predicate.
Definition:
type-traits.h:592
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:404
TypeTraits::ReferenceTraits::IsReference
Not a reference type.
Definition:
type-traits.h:64
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:539
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:564
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:368
TypeTraits::UnConst
Not a const type.
Definition:
type-traits.h:46
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:537
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:286
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:441
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:422
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg6Type
W6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:567
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:463
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:444
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:486
TypeTraits
Inspect a type to deduce its features.
Definition:
type-traits.h:37
TypeTraits::PointeeType
PointerTraits< T >::PointeeType PointeeType
Pointee type.
Definition:
type-traits.h:576
TypeTraits::ReferenceTraits
Not a reference type.
Definition:
type-traits.h:62
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:464
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:237
TypeTraits::ReferenceTraits::ReferencedType
U ReferencedType
Base type.
Definition:
type-traits.h:65
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:262
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:445
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:220
TypeTraits::Base< U * >::Type
Base< U >::Type Type
Base type.
Definition:
type-traits.h:128
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg5Type
V5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:264
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:218
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:285
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:240
TypeTraits::NonConstType
UnConst< T >::Result NonConstType
Not a const type.
Definition:
type-traits.h:572
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:565
TypeTraits::IsReference
Reference predicate.
Definition:
type-traits.h:590
TypeTraits::FunctionPtrTraits::ReturnType
NullType ReturnType
Return type.
Definition:
type-traits.h:161
TypeTraits::PtrToMemberTraits< U(V::*)(void) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:321
TypeTraits::PtrBase< ns3::Ptr< U > >::Type
U Type
Base type.
Definition:
type-traits.h:152
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:466
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:487
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:238
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:442
TypeTraits::PtrBase::Type
U Type
Base type.
Definition:
type-traits.h:144
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:491
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:488
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:535
TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:366
TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:217
TypeTraits::PointerTraits::IsPtr
Not a Ptr type.
Definition:
type-traits.h:83
src
core
model
type-traits.h
Generated on Wed Nov 11 2015 20:00:28 for ns-3 by
1.8.9.1