A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
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
31
namespace
ns3
{
32
38
template
<
typename
T>
39
struct
TypeTraits
40
{
41
private
:
43
struct
NullType
{};
48
template
<
typename
U>
49
struct
UnConst
50
{
51
typedef
U
Result
;
52
};
57
template
<
typename
U>
58
struct
UnConst
<const U>
59
{
60
typedef
U
Result
;
61
};
66
template
<
typename
U>
67
struct
ReferenceTraits
68
{
70
enum
71
{
72
IsReference
= 0
73
};
74
typedef
U
ReferencedType
;
75
};
80
template
<
typename
U>
81
struct
ReferenceTraits
<U&>
82
{
84
enum
85
{
86
IsReference
= 1
87
};
88
typedef
U
ReferencedType
;
89
};
94
template
<
typename
U>
95
struct
PointerTraits
96
{
98
enum
99
{
100
IsPointer
= 0,
101
IsPtr
= 0
102
};
103
typedef
U
PointeeType
;
104
};
109
template
<
typename
U>
110
struct
PointerTraits
<U *>
111
{
113
enum
114
{
115
IsPointer
= 1,
116
IsPtr
= 0
117
};
118
typedef
U
PointeeType
;
119
};
124
template
<
typename
U>
125
struct
PointerTraits
<
ns3
::
Ptr
<U> >
126
{
128
enum
129
{
130
IsPointer
= 0,
131
IsPtr
= 1
132
};
133
typedef
U
PointeeType
;
134
};
139
template
<
typename
U>
140
struct
Base
141
{
142
typedef
U
Type
;
143
};
148
template
<
typename
U>
149
struct
Base
<U &>
150
{
151
typedef
typename
Base<U>::Type
Type
;
152
};
157
template
<
typename
U>
158
struct
Base
<U *>
159
{
160
typedef
typename
Base<U>::Type
Type
;
161
};
166
template
<
typename
U>
167
struct
Base
<const U >
168
{
169
typedef
typename
Base<U>::Type
Type
;
170
};
175
template
<
typename
U>
176
struct
PtrBase
177
{
178
typedef
U
Type
;
179
};
184
template
<
typename
U>
185
struct
PtrBase
<
ns3
::
Ptr
<U> >
186
{
187
typedef
U
Type
;
188
};
193
template
<
typename
U>
194
struct
FunctionPtrTraits
195
{
197
enum
198
{
199
IsFunctionPointer
= 0
200
};
201
typedef
NullType
ReturnType
;
202
};
207
template
<
typename
U>
208
struct
FunctionPtrTraits
<U (*)(
void
)>
209
{
211
enum
212
{
213
IsFunctionPointer
= 1
214
};
enum
216
{
217
nArgs = 0
218
};
219
typedef
U
ReturnType
;
220
};
226
template
<
typename
U,
227
typename
V1>
228
struct
FunctionPtrTraits
<U (*)(V1)>
229
{
231
enum
232
{
233
IsFunctionPointer
= 1
234
};
enum
236
{
237
nArgs = 1
238
};
239
typedef
U
ReturnType
;
240
typedef
V1
Arg1Type
;
241
};
248
template
<
typename
U,
249
typename
V1,
typename
V2>
250
struct
FunctionPtrTraits
<U (*)(V1,V2)>
251
{
253
enum
254
{
255
IsFunctionPointer
= 1
256
};
enum
258
{
259
nArgs = 2
260
};
261
typedef
U
ReturnType
;
262
typedef
V1
Arg1Type
;
263
typedef
V2
Arg2Type
;
264
};
272
template
<
typename
U,
273
typename
V1,
typename
V2,
typename
V3>
274
struct
FunctionPtrTraits
<U (*)(V1,V2,V3)>
275
{
277
enum
278
{
279
IsFunctionPointer
= 1
280
};
enum
282
{
283
nArgs = 3
284
};
285
typedef
U
ReturnType
;
286
typedef
V1
Arg1Type
;
287
typedef
V2
Arg2Type
;
288
typedef
V3
Arg3Type
;
289
};
298
template
<
typename
U,
299
typename
V1,
typename
V2,
typename
V3,
300
typename
V4>
301
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4)>
302
{
304
enum
305
{
306
IsFunctionPointer
= 1
307
};
enum
309
{
310
nArgs = 4
311
};
312
typedef
U
ReturnType
;
313
typedef
V1
Arg1Type
;
314
typedef
V2
Arg2Type
;
315
typedef
V3
Arg3Type
;
316
typedef
V4
Arg4Type
;
317
};
327
template
<
typename
U,
328
typename
V1,
typename
V2,
typename
V3,
329
typename
V4,
typename
V5>
330
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4,V5)>
331
{
333
enum
334
{
335
IsFunctionPointer
= 1
336
};
enum
338
{
339
nArgs = 5
340
};
341
typedef
U
ReturnType
;
342
typedef
V1
Arg1Type
;
343
typedef
V2
Arg2Type
;
344
typedef
V3
Arg3Type
;
345
typedef
V4
Arg4Type
;
346
typedef
V5
Arg5Type
;
347
};
358
template
<
typename
U,
359
typename
V1,
typename
V2,
typename
V3,
360
typename
V4,
typename
V5,
typename
V6>
361
struct
FunctionPtrTraits
<U (*)(V1,V2,V3,V4,V5,V6)>
362
{
364
enum
365
{
366
IsFunctionPointer
= 1
367
};
enum
369
{
370
nArgs = 6
371
};
372
typedef
U
ReturnType
;
373
typedef
V1
Arg1Type
;
374
typedef
V2
Arg2Type
;
375
typedef
V3
Arg3Type
;
376
typedef
V4
Arg4Type
;
377
typedef
V5
Arg5Type
;
378
typedef
V6
Arg6Type
;
379
};
384
template
<
typename
U>
385
struct
PtrToMemberTraits
386
{
388
enum
389
{
390
IsPointerToMember
= 0
391
};
392
};
398
template
<
typename
U,
typename
V>
399
struct
PtrToMemberTraits
<U (V::*)(void)>
400
{
402
enum
403
{
404
IsPointerToMember
= 1
405
};
enum
407
{
408
nArgs = 0
409
};
410
typedef
U
ReturnType
;
411
};
417
template
<
typename
U,
typename
V>
418
struct
PtrToMemberTraits
<U (V::*)(void) const>
419
{
421
enum
422
{
423
IsPointerToMember
= 1
424
};
enum
426
{
427
nArgs = 0
428
};
429
typedef
U
ReturnType
;
430
};
437
template
<
typename
U,
typename
V,
438
typename
W1>
439
struct
PtrToMemberTraits
<U (V::*)(W1)>
440
{
442
enum
443
{
444
IsPointerToMember
= 1
445
};
enum
447
{
448
nArgs = 1
449
};
450
typedef
U
ReturnType
;
451
typedef
W1
Arg1Type
;
452
};
459
template
<
typename
U,
typename
V,
460
typename
W1>
461
struct
PtrToMemberTraits
<U (V::*)(W1) const>
462
{
464
enum
465
{
466
IsPointerToMember
= 1
467
};
enum
469
{
470
nArgs = 1
471
};
472
typedef
U
ReturnType
;
473
typedef
W1
Arg1Type
;
474
};
482
template
<
typename
U,
typename
V,
483
typename
W1,
typename
W2>
484
struct
PtrToMemberTraits
<U (V::*)(W1,W2)>
485
{
487
enum
488
{
489
IsPointerToMember
= 1
490
};
enum
492
{
493
nArgs = 2
494
};
495
typedef
U
ReturnType
;
496
typedef
W1
Arg1Type
;
497
typedef
W2
Arg2Type
;
498
};
506
template
<
typename
U,
typename
V,
507
typename
W1,
typename
W2>
508
struct
PtrToMemberTraits
<U (V::*)(W1,W2) const>
509
{
511
enum
512
{
513
IsPointerToMember
= 1
514
};
enum
516
{
517
nArgs = 2
518
};
519
typedef
U
ReturnType
;
520
typedef
W1
Arg1Type
;
521
typedef
W2
Arg2Type
;
522
};
531
template
<
typename
U,
typename
V,
532
typename
W1,
typename
W2,
typename
W3>
533
struct
PtrToMemberTraits
<U (V::*)(W1,W2,W3)>
534
{
536
enum
537
{
538
IsPointerToMember
= 1
539
};
enum
541
{
542
nArgs = 3
543
};
544
typedef
U
ReturnType
;
545
typedef
W1
Arg1Type
;
546
typedef
W2
Arg2Type
;
547
typedef
W3
Arg3Type
;
548
};
557
template
<
typename
U,
typename
V,
558
typename
W1,
typename
W2,
typename
W3>
559
struct
PtrToMemberTraits
<U (V::*)(W1,W2,W3) const>
560
{
562
enum
563
{
564
IsPointerToMember
= 1
565
};
enum
567
{
568
nArgs = 3
569
};
570
typedef
U
ReturnType
;
571
typedef
W1
Arg1Type
;
572
typedef
W2
Arg2Type
;
573
typedef
W3
Arg3Type
;
574
};
584
template
<
typename
U,
typename
V,
585
typename
W1,
typename
W2,
typename
W3,
586
typename
W4>
587
struct
PtrToMemberTraits
<U (V::*)(W1,W2,W3,W4)>
588
{
590
enum
591
{
592
IsPointerToMember
= 1
593
};
enum
595
{
596
nArgs = 4
597
};
598
typedef
U
ReturnType
;
599
typedef
W1
Arg1Type
;
600
typedef
W2
Arg2Type
;
601
typedef
W3
Arg3Type
;
602
typedef
W4
Arg4Type
;
603
};
613
template
<
typename
U,
typename
V,
614
typename
W1,
typename
W2,
typename
W3,
615
typename
W4>
616
struct
PtrToMemberTraits
<U (V::*)(W1,W2,W3,W4) const>
617
{
619
enum
620
{
621
IsPointerToMember
= 1
622
};
enum
624
{
625
nArgs = 4
626
};
627
typedef
U
ReturnType
;
628
typedef
W1
Arg1Type
;
629
typedef
W2
Arg2Type
;
630
typedef
W3
Arg3Type
;
631
typedef
W4
Arg4Type
;
632
};
643
template
<
typename
U,
typename
V,
644
typename
W1,
typename
W2,
typename
W3,
645
typename
W4,
typename
W5>
646
struct
PtrToMemberTraits
<U (V::*)(W1,W2,W3,W4,W5)>
647
{
649
enum
650
{
651
IsPointerToMember
= 1
652
};
enum
654
{
655
nArgs = 5
656
};
657
typedef
U
ReturnType
;
658
typedef
W1
Arg1Type
;
659
typedef
W2
Arg2Type
;
660
typedef
W3
Arg3Type
;
661
typedef
W4
Arg4Type
;
662
typedef
W5
Arg5Type
;
663
};
674
template
<
typename
U,
typename
V,
675
typename
W1,
typename
W2,
typename
W3,
676
typename
W4,
typename
W5>
677
struct
PtrToMemberTraits
<U (V::*)(W1,W2,W3,W4,W5) const>
678
{
680
enum
681
{
682
IsPointerToMember
= 1
683
};
enum
685
{
686
nArgs = 5
687
};
688
typedef
U
ReturnType
;
689
typedef
W1
Arg1Type
;
690
typedef
W2
Arg2Type
;
691
typedef
W3
Arg3Type
;
692
typedef
W4
Arg4Type
;
693
typedef
W5
Arg5Type
;
694
};
706
template
<
typename
U,
typename
V,
707
typename
W1,
typename
W2,
typename
W3,
708
typename
W4,
typename
W5,
typename
W6>
709
struct
PtrToMemberTraits
<U (V::*)(W1,W2,W3,W4,W5,W6)>
710
{
712
enum
713
{
714
IsPointerToMember
= 1
715
};
enum
717
{
718
nArgs = 6
719
};
720
typedef
U
ReturnType
;
721
typedef
W1
Arg1Type
;
722
typedef
W2
Arg2Type
;
723
typedef
W3
Arg3Type
;
724
typedef
W4
Arg4Type
;
725
typedef
W5
Arg5Type
;
726
typedef
W6
Arg6Type
;
727
};
739
template
<
typename
U,
typename
V,
740
typename
W1,
typename
W2,
typename
W3,
741
typename
W4,
typename
W5,
typename
W6>
742
struct
PtrToMemberTraits
<U (V::*)(W1,W2,W3,W4,W5,W6) const>
743
{
745
enum
746
{
747
IsPointerToMember
= 1
748
};
enum
750
{
751
nArgs = 6
752
};
753
typedef
U
ReturnType
;
754
typedef
W1
Arg1Type
;
755
typedef
W2
Arg2Type
;
756
typedef
W3
Arg3Type
;
757
typedef
W4
Arg4Type
;
758
typedef
W5
Arg5Type
;
759
typedef
W6
Arg6Type
;
760
};
761
762
public
:
764
typedef
typename
UnConst<T>::Result
NonConstType
;
766
typedef
typename
ReferenceTraits<T>::ReferencedType
ReferencedType
;
768
typedef
typename
PointerTraits<T>::PointeeType
PointeeType
;
770
typedef
typename
Base<T>::Type
BaseType
;
772
typedef
typename
PtrBase<T>::Type
PtrBaseType
;
774
enum
775
{
777
IsPointerToMember
=
PtrToMemberTraits<T>::IsPointerToMember
,
779
IsPointer
=
PointerTraits<T>::IsPointer
,
781
IsPtr
=
PointerTraits<T>::IsPtr
,
783
IsReference
=
ReferenceTraits<T>::IsReference
,
785
IsFunctionPointer
=
FunctionPtrTraits<T>::IsFunctionPointer
786
};
788
typedef
PtrToMemberTraits<T>
PointerToMemberTraits
;
790
typedef
FunctionPtrTraits<T>
FunctionPointerTraits
;
791
};
792
793
}
// namespace ns3
794
795
#endif
/* TYPE_TRAITS_H */
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:74
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ptr.h
ns3::Ptr smart pointer declaration and implementation.
ns3::TypeTraits::Base< U * >::Type
Base< U >::Type Type
Base type.
Definition:
type-traits.h:160
ns3::TypeTraits::Base< U & >::Type
Base< U >::Type Type
Base type.
Definition:
type-traits.h:151
ns3::TypeTraits::Base< const U >::Type
Base< U >::Type Type
Base type.
Definition:
type-traits.h:169
ns3::TypeTraits::Base
Base type, after removing &, * and const.
Definition:
type-traits.h:141
ns3::TypeTraits::Base::Type
U Type
Base type.
Definition:
type-traits.h:142
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:376
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:373
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:372
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg5Type
V5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:377
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:375
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:374
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg6Type
V6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:378
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:345
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:344
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:343
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:342
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:341
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg5Type
V5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:346
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:315
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:312
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:316
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:313
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:314
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:286
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:288
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:287
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:285
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:261
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:263
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:262
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:240
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:239
ns3::TypeTraits::FunctionPtrTraits< U(*)(void)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:219
ns3::TypeTraits::FunctionPtrTraits
Not a function pointer type.
Definition:
type-traits.h:195
ns3::TypeTraits::FunctionPtrTraits::IsFunctionPointer
@ IsFunctionPointer
Not a function pointer.
Definition:
type-traits.h:199
ns3::TypeTraits::FunctionPtrTraits::ReturnType
NullType ReturnType
Return type.
Definition:
type-traits.h:201
ns3::TypeTraits::NullType
Null value type traits.
Definition:
type-traits.h:43
ns3::TypeTraits::PointerTraits< U * >::PointeeType
U PointeeType
Pointee type.
Definition:
type-traits.h:118
ns3::TypeTraits::PointerTraits< ns3::Ptr< U > >::PointeeType
U PointeeType
Pointee type.
Definition:
type-traits.h:133
ns3::TypeTraits::PointerTraits
Not a pointer type.
Definition:
type-traits.h:96
ns3::TypeTraits::PointerTraits::PointeeType
U PointeeType
Base type.
Definition:
type-traits.h:103
ns3::TypeTraits::PointerTraits::IsPtr
@ IsPtr
Not a Ptr type.
Definition:
type-traits.h:101
ns3::TypeTraits::PointerTraits::IsPointer
@ IsPointer
Not a pointer type.
Definition:
type-traits.h:100
ns3::TypeTraits::PtrBase< ns3::Ptr< U > >::Type
U Type
Base type.
Definition:
type-traits.h:187
ns3::TypeTraits::PtrBase
Base type of a Ptr.
Definition:
type-traits.h:177
ns3::TypeTraits::PtrBase::Type
U Type
Base type.
Definition:
type-traits.h:178
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:720
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:725
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:721
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:723
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:724
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:722
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg6Type
W6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:726
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:662
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:659
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:658
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:661
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:660
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:657
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:631
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:627
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:630
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:629
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:628
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:599
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:602
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:598
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:601
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:600
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:570
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:572
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:571
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:573
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:547
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:545
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:546
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:544
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:690
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:693
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:692
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:689
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:688
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:691
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg6Type
W6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:759
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:754
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:755
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:758
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:753
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:757
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:756
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:520
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:521
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:519
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:497
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:496
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:495
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:472
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:473
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:450
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:451
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(void) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:429
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(void)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:410
ns3::TypeTraits::PtrToMemberTraits
Not a pointer to member type.
Definition:
type-traits.h:386
ns3::TypeTraits::PtrToMemberTraits::IsPointerToMember
@ IsPointerToMember
Not a pointer to member.
Definition:
type-traits.h:390
ns3::TypeTraits::ReferenceTraits< U & >::ReferencedType
U ReferencedType
Base type.
Definition:
type-traits.h:88
ns3::TypeTraits::ReferenceTraits
Not a reference type.
Definition:
type-traits.h:68
ns3::TypeTraits::ReferenceTraits::ReferencedType
U ReferencedType
Base type.
Definition:
type-traits.h:74
ns3::TypeTraits::ReferenceTraits::IsReference
@ IsReference
Not a reference type.
Definition:
type-traits.h:72
ns3::TypeTraits::UnConst< const U >::Result
U Result
Non-const type.
Definition:
type-traits.h:60
ns3::TypeTraits::UnConst
Not a const type.
Definition:
type-traits.h:50
ns3::TypeTraits::UnConst::Result
U Result
Non-const type.
Definition:
type-traits.h:51
ns3::TypeTraits
Inspect a type to deduce its features.
Definition:
type-traits.h:40
ns3::TypeTraits::ReferencedType
ReferenceTraits< T >::ReferencedType ReferencedType
Referenced type.
Definition:
type-traits.h:766
ns3::TypeTraits::PointerToMemberTraits
PtrToMemberTraits< T > PointerToMemberTraits
Pointer to member traits type.
Definition:
type-traits.h:788
ns3::TypeTraits::PtrBaseType
PtrBase< T >::Type PtrBaseType
Ptr base type.
Definition:
type-traits.h:772
ns3::TypeTraits::FunctionPointerTraits
FunctionPtrTraits< T > FunctionPointerTraits
Function pointer traits.
Definition:
type-traits.h:790
ns3::TypeTraits::IsPtr
@ IsPtr
Ptr predicate.
Definition:
type-traits.h:781
ns3::TypeTraits::IsFunctionPointer
@ IsFunctionPointer
Function pointer predicate.
Definition:
type-traits.h:785
ns3::TypeTraits::IsPointerToMember
@ IsPointerToMember
Pointer to member predicate.
Definition:
type-traits.h:777
ns3::TypeTraits::IsReference
@ IsReference
Reference predicate.
Definition:
type-traits.h:783
ns3::TypeTraits::IsPointer
@ IsPointer
Pointer predicate.
Definition:
type-traits.h:779
ns3::TypeTraits::BaseType
Base< T >::Type BaseType
Base type, after removing &, * and const.
Definition:
type-traits.h:770
ns3::TypeTraits::PointeeType
PointerTraits< T >::PointeeType PointeeType
Pointee type.
Definition:
type-traits.h:768
ns3::TypeTraits::NonConstType
UnConst< T >::Result NonConstType
Not a const type.
Definition:
type-traits.h:764
src
core
model
type-traits.h
Generated on Tue Feb 6 2024 19:21:17 for ns-3 by
1.9.1