A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
type-traits.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2007 INRIA
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
*/
18
19
#ifndef TYPE_TRAITS_H
20
#define TYPE_TRAITS_H
21
22
#include "
ptr.h
"
23
30
namespace
ns3
31
{
32
38
template
<
typename
T>
39
struct
TypeTraits
40
{
41
private
:
43
struct
NullType
44
{
45
};
46
51
template
<
typename
U>
52
struct
UnConst
53
{
54
typedef
U
Result
;
55
};
56
61
template
<
typename
U>
62
struct
UnConst
<const U>
63
{
64
typedef
U
Result
;
65
};
66
71
template
<
typename
U>
72
struct
ReferenceTraits
73
{
75
enum
76
{
77
IsReference
= 0
78
};
79
80
typedef
U
ReferencedType
;
81
};
82
87
template
<
typename
U>
88
struct
ReferenceTraits
<U&>
89
{
91
enum
92
{
93
IsReference
= 1
94
};
95
96
typedef
U
ReferencedType
;
97
};
98
103
template
<
typename
U>
104
struct
PointerTraits
105
{
107
enum
108
{
109
IsPointer
= 0,
110
IsPtr
= 0
111
};
112
113
typedef
U
PointeeType
;
114
};
115
120
template
<
typename
U>
121
struct
PointerTraits
<U*>
122
{
124
enum
125
{
126
IsPointer
= 1,
127
IsPtr
= 0
128
};
129
130
typedef
U
PointeeType
;
131
};
132
137
template
<
typename
U>
138
struct
PointerTraits
<
ns3
::
Ptr
<U>>
139
{
141
enum
142
{
143
IsPointer
= 0,
144
IsPtr
= 1
145
};
146
147
typedef
U
PointeeType
;
148
};
149
154
template
<
typename
U>
155
struct
Base
156
{
157
typedef
U
Type
;
158
};
159
164
template
<
typename
U>
165
struct
Base
<U&>
166
{
167
typedef
typename
Base<U>::Type
Type
;
168
};
169
174
template
<
typename
U>
175
struct
Base
<U*>
176
{
177
typedef
typename
Base<U>::Type
Type
;
178
};
179
184
template
<
typename
U>
185
struct
Base
<const U>
186
{
187
typedef
typename
Base<U>::Type
Type
;
188
};
189
194
template
<
typename
U>
195
struct
PtrBase
196
{
197
typedef
U
Type
;
198
};
199
204
template
<
typename
U>
205
struct
PtrBase
<
ns3
::
Ptr
<U>>
206
{
207
typedef
U
Type
;
208
};
209
214
template
<
typename
U>
215
struct
FunctionPtrTraits
216
{
218
enum
219
{
220
IsFunctionPointer
= 0
221
};
222
223
typedef
NullType
ReturnType
;
224
};
225
230
template
<
typename
U>
231
struct
FunctionPtrTraits
<U (*)()>
232
{
234
enum
235
{
236
IsFunctionPointer
= 1
237
};
238
enum
240
{
241
nArgs = 0
242
};
243
244
typedef
U
ReturnType
;
245
};
246
252
template
<
typename
U,
typename
V1>
253
struct
FunctionPtrTraits
<U (*)(V1)>
254
{
256
enum
257
{
258
IsFunctionPointer
= 1
259
};
260
enum
262
{
263
nArgs = 1
264
};
265
266
typedef
U
ReturnType
;
267
typedef
V1
Arg1Type
;
268
};
269
276
template
<
typename
U,
typename
V1,
typename
V2>
277
struct
FunctionPtrTraits
<U (*)(V1, V2)>
278
{
280
enum
281
{
282
IsFunctionPointer
= 1
283
};
284
enum
286
{
287
nArgs = 2
288
};
289
290
typedef
U
ReturnType
;
291
typedef
V1
Arg1Type
;
292
typedef
V2
Arg2Type
;
293
};
294
302
template
<
typename
U,
typename
V1,
typename
V2,
typename
V3>
303
struct
FunctionPtrTraits
<U (*)(V1, V2, V3)>
304
{
306
enum
307
{
308
IsFunctionPointer
= 1
309
};
310
enum
312
{
313
nArgs = 3
314
};
315
316
typedef
U
ReturnType
;
317
typedef
V1
Arg1Type
;
318
typedef
V2
Arg2Type
;
319
typedef
V3
Arg3Type
;
320
};
321
330
template
<
typename
U,
typename
V1,
typename
V2,
typename
V3,
typename
V4>
331
struct
FunctionPtrTraits
<U (*)(V1, V2, V3, V4)>
332
{
334
enum
335
{
336
IsFunctionPointer
= 1
337
};
338
enum
340
{
341
nArgs = 4
342
};
343
344
typedef
U
ReturnType
;
345
typedef
V1
Arg1Type
;
346
typedef
V2
Arg2Type
;
347
typedef
V3
Arg3Type
;
348
typedef
V4
Arg4Type
;
349
};
350
360
template
<
typename
U,
typename
V1,
typename
V2,
typename
V3,
typename
V4,
typename
V5>
361
struct
FunctionPtrTraits
<U (*)(V1, V2, V3, V4, V5)>
362
{
364
enum
365
{
366
IsFunctionPointer
= 1
367
};
368
enum
370
{
371
nArgs = 5
372
};
373
374
typedef
U
ReturnType
;
375
typedef
V1
Arg1Type
;
376
typedef
V2
Arg2Type
;
377
typedef
V3
Arg3Type
;
378
typedef
V4
Arg4Type
;
379
typedef
V5
Arg5Type
;
380
};
381
392
template
<
typename
U,
393
typename
V1,
394
typename
V2,
395
typename
V3,
396
typename
V4,
397
typename
V5,
398
typename
V6>
399
struct
FunctionPtrTraits
<U (*)(V1, V2, V3, V4, V5, V6)>
400
{
402
enum
403
{
404
IsFunctionPointer
= 1
405
};
406
enum
408
{
409
nArgs = 6
410
};
411
412
typedef
U
ReturnType
;
413
typedef
V1
Arg1Type
;
414
typedef
V2
Arg2Type
;
415
typedef
V3
Arg3Type
;
416
typedef
V4
Arg4Type
;
417
typedef
V5
Arg5Type
;
418
typedef
V6
Arg6Type
;
419
};
420
425
template
<
typename
U>
426
struct
PtrToMemberTraits
427
{
429
enum
430
{
431
IsPointerToMember
= 0
432
};
433
};
434
440
template
<
typename
U,
typename
V>
441
struct
PtrToMemberTraits
<U (V::*)()>
442
{
444
enum
445
{
446
IsPointerToMember
= 1
447
};
448
enum
450
{
451
nArgs = 0
452
};
453
454
typedef
U
ReturnType
;
455
};
456
462
template
<
typename
U,
typename
V>
463
struct
PtrToMemberTraits
<U (V::*)() const>
464
{
466
enum
467
{
468
IsPointerToMember
= 1
469
};
470
enum
472
{
473
nArgs = 0
474
};
475
476
typedef
U
ReturnType
;
477
};
478
485
template
<
typename
U,
typename
V,
typename
W1>
486
struct
PtrToMemberTraits
<U (V::*)(W1)>
487
{
489
enum
490
{
491
IsPointerToMember
= 1
492
};
493
enum
495
{
496
nArgs = 1
497
};
498
499
typedef
U
ReturnType
;
500
typedef
W1
Arg1Type
;
501
};
502
509
template
<
typename
U,
typename
V,
typename
W1>
510
struct
PtrToMemberTraits
<U (V::*)(W1) const>
511
{
513
enum
514
{
515
IsPointerToMember
= 1
516
};
517
enum
519
{
520
nArgs = 1
521
};
522
523
typedef
U
ReturnType
;
524
typedef
W1
Arg1Type
;
525
};
526
534
template
<
typename
U,
typename
V,
typename
W1,
typename
W2>
535
struct
PtrToMemberTraits
<U (V::*)(W1, W2)>
536
{
538
enum
539
{
540
IsPointerToMember
= 1
541
};
542
enum
544
{
545
nArgs = 2
546
};
547
548
typedef
U
ReturnType
;
549
typedef
W1
Arg1Type
;
550
typedef
W2
Arg2Type
;
551
};
552
560
template
<
typename
U,
typename
V,
typename
W1,
typename
W2>
561
struct
PtrToMemberTraits
<U (V::*)(W1, W2) const>
562
{
564
enum
565
{
566
IsPointerToMember
= 1
567
};
568
enum
570
{
571
nArgs = 2
572
};
573
574
typedef
U
ReturnType
;
575
typedef
W1
Arg1Type
;
576
typedef
W2
Arg2Type
;
577
};
578
587
template
<
typename
U,
typename
V,
typename
W1,
typename
W2,
typename
W3>
588
struct
PtrToMemberTraits
<U (V::*)(W1, W2, W3)>
589
{
591
enum
592
{
593
IsPointerToMember
= 1
594
};
595
enum
597
{
598
nArgs = 3
599
};
600
601
typedef
U
ReturnType
;
602
typedef
W1
Arg1Type
;
603
typedef
W2
Arg2Type
;
604
typedef
W3
Arg3Type
;
605
};
606
615
template
<
typename
U,
typename
V,
typename
W1,
typename
W2,
typename
W3>
616
struct
PtrToMemberTraits
<U (V::*)(W1, W2, W3) const>
617
{
619
enum
620
{
621
IsPointerToMember
= 1
622
};
623
enum
625
{
626
nArgs = 3
627
};
628
629
typedef
U
ReturnType
;
630
typedef
W1
Arg1Type
;
631
typedef
W2
Arg2Type
;
632
typedef
W3
Arg3Type
;
633
};
634
644
template
<
typename
U,
typename
V,
typename
W1,
typename
W2,
typename
W3,
typename
W4>
645
struct
PtrToMemberTraits
<U (V::*)(W1, W2, W3, W4)>
646
{
648
enum
649
{
650
IsPointerToMember
= 1
651
};
652
enum
654
{
655
nArgs = 4
656
};
657
658
typedef
U
ReturnType
;
659
typedef
W1
Arg1Type
;
660
typedef
W2
Arg2Type
;
661
typedef
W3
Arg3Type
;
662
typedef
W4
Arg4Type
;
663
};
664
674
template
<
typename
U,
typename
V,
typename
W1,
typename
W2,
typename
W3,
typename
W4>
675
struct
PtrToMemberTraits
<U (V::*)(W1, W2, W3, W4) const>
676
{
678
enum
679
{
680
IsPointerToMember
= 1
681
};
682
enum
684
{
685
nArgs = 4
686
};
687
688
typedef
U
ReturnType
;
689
typedef
W1
Arg1Type
;
690
typedef
W2
Arg2Type
;
691
typedef
W3
Arg3Type
;
692
typedef
W4
Arg4Type
;
693
};
694
705
template
<
typename
U,
706
typename
V,
707
typename
W1,
708
typename
W2,
709
typename
W3,
710
typename
W4,
711
typename
W5>
712
struct
PtrToMemberTraits
<U (V::*)(W1, W2, W3, W4, W5)>
713
{
715
enum
716
{
717
IsPointerToMember
= 1
718
};
719
enum
721
{
722
nArgs = 5
723
};
724
725
typedef
U
ReturnType
;
726
typedef
W1
Arg1Type
;
727
typedef
W2
Arg2Type
;
728
typedef
W3
Arg3Type
;
729
typedef
W4
Arg4Type
;
730
typedef
W5
Arg5Type
;
731
};
732
743
template
<
typename
U,
744
typename
V,
745
typename
W1,
746
typename
W2,
747
typename
W3,
748
typename
W4,
749
typename
W5>
750
struct
PtrToMemberTraits
<U (V::*)(W1, W2, W3, W4, W5) const>
751
{
753
enum
754
{
755
IsPointerToMember
= 1
756
};
757
enum
759
{
760
nArgs = 5
761
};
762
763
typedef
U
ReturnType
;
764
typedef
W1
Arg1Type
;
765
typedef
W2
Arg2Type
;
766
typedef
W3
Arg3Type
;
767
typedef
W4
Arg4Type
;
768
typedef
W5
Arg5Type
;
769
};
770
782
template
<
typename
U,
783
typename
V,
784
typename
W1,
785
typename
W2,
786
typename
W3,
787
typename
W4,
788
typename
W5,
789
typename
W6>
790
struct
PtrToMemberTraits
<U (V::*)(W1, W2, W3, W4, W5, W6)>
791
{
793
enum
794
{
795
IsPointerToMember
= 1
796
};
797
enum
799
{
800
nArgs = 6
801
};
802
803
typedef
U
ReturnType
;
804
typedef
W1
Arg1Type
;
805
typedef
W2
Arg2Type
;
806
typedef
W3
Arg3Type
;
807
typedef
W4
Arg4Type
;
808
typedef
W5
Arg5Type
;
809
typedef
W6
Arg6Type
;
810
};
811
823
template
<
typename
U,
824
typename
V,
825
typename
W1,
826
typename
W2,
827
typename
W3,
828
typename
W4,
829
typename
W5,
830
typename
W6>
831
struct
PtrToMemberTraits
<U (V::*)(W1, W2, W3, W4, W5, W6) const>
832
{
834
enum
835
{
836
IsPointerToMember
= 1
837
};
838
enum
840
{
841
nArgs = 6
842
};
843
844
typedef
U
ReturnType
;
845
typedef
W1
Arg1Type
;
846
typedef
W2
Arg2Type
;
847
typedef
W3
Arg3Type
;
848
typedef
W4
Arg4Type
;
849
typedef
W5
Arg5Type
;
850
typedef
W6
Arg6Type
;
851
};
852
853
public
:
855
typedef
typename
UnConst<T>::Result
NonConstType
;
857
typedef
typename
ReferenceTraits<T>::ReferencedType
ReferencedType
;
859
typedef
typename
PointerTraits<T>::PointeeType
PointeeType
;
861
typedef
typename
Base<T>::Type
BaseType
;
863
typedef
typename
PtrBase<T>::Type
PtrBaseType
;
864
866
enum
867
{
869
IsPointerToMember
=
PtrToMemberTraits<T>::IsPointerToMember
,
871
IsPointer
=
PointerTraits<T>::IsPointer
,
873
IsPtr
=
PointerTraits<T>::IsPtr
,
875
IsReference
=
ReferenceTraits<T>::IsReference
,
877
IsFunctionPointer
=
FunctionPtrTraits<T>::IsFunctionPointer
878
};
879
881
typedef
PtrToMemberTraits<T>
PointerToMemberTraits
;
883
typedef
FunctionPtrTraits<T>
FunctionPointerTraits
;
884
};
885
886
}
// namespace ns3
887
888
#endif
/* TYPE_TRAITS_H */
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:78
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:177
ns3::TypeTraits::Base< U & >::Type
Base< U >::Type Type
Base type.
Definition:
type-traits.h:167
ns3::TypeTraits::Base< const U >::Type
Base< U >::Type Type
Base type.
Definition:
type-traits.h:187
ns3::TypeTraits::Base
Base type, after removing &, * and const.
Definition:
type-traits.h:156
ns3::TypeTraits::Base::Type
U Type
Base type.
Definition:
type-traits.h:157
ns3::TypeTraits::FunctionPtrTraits< U(*)()>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:244
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:416
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:413
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:412
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg5Type
V5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:417
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:415
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:414
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5, V6)>::Arg6Type
V6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:418
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:378
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:377
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:376
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:375
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:374
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4, V5)>::Arg5Type
V5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:379
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:347
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:344
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg4Type
V4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:348
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:345
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3, V4)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:346
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:317
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg3Type
V3 Arg3Type
Third argument type.
Definition:
type-traits.h:319
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:318
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2, V3)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:316
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:290
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::Arg2Type
V2 Arg2Type
Second argument type.
Definition:
type-traits.h:292
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1, V2)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:291
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1)>::Arg1Type
V1 Arg1Type
First argument type.
Definition:
type-traits.h:267
ns3::TypeTraits::FunctionPtrTraits< U(*)(V1)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:266
ns3::TypeTraits::FunctionPtrTraits
Not a function pointer type.
Definition:
type-traits.h:216
ns3::TypeTraits::FunctionPtrTraits::ReturnType
NullType ReturnType
Return type.
Definition:
type-traits.h:223
ns3::TypeTraits::FunctionPtrTraits::IsFunctionPointer
@ IsFunctionPointer
Not a function pointer.
Definition:
type-traits.h:220
ns3::TypeTraits::NullType
Null value type traits.
Definition:
type-traits.h:44
ns3::TypeTraits::PointerTraits< U * >::PointeeType
U PointeeType
Pointee type.
Definition:
type-traits.h:130
ns3::TypeTraits::PointerTraits< ns3::Ptr< U > >::PointeeType
U PointeeType
Pointee type.
Definition:
type-traits.h:147
ns3::TypeTraits::PointerTraits
Not a pointer type.
Definition:
type-traits.h:105
ns3::TypeTraits::PointerTraits::IsPtr
@ IsPtr
Not a Ptr type.
Definition:
type-traits.h:110
ns3::TypeTraits::PointerTraits::IsPointer
@ IsPointer
Not a pointer type.
Definition:
type-traits.h:109
ns3::TypeTraits::PointerTraits::PointeeType
U PointeeType
Base type.
Definition:
type-traits.h:113
ns3::TypeTraits::PtrBase< ns3::Ptr< U > >::Type
U Type
Base type.
Definition:
type-traits.h:207
ns3::TypeTraits::PtrBase
Base type of a Ptr.
Definition:
type-traits.h:196
ns3::TypeTraits::PtrBase::Type
U Type
Base type.
Definition:
type-traits.h:197
ns3::TypeTraits::PtrToMemberTraits< U(V::*)() const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:476
ns3::TypeTraits::PtrToMemberTraits< U(V::*)()>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:454
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:803
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:808
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:804
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:806
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:807
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:805
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6)>::Arg6Type
W6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:809
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:730
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:727
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:726
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:729
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:728
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:725
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:692
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:688
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:691
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:690
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:689
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:659
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:662
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:658
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:661
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:660
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:629
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:631
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:630
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:632
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:604
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:602
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:603
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:601
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:765
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:768
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:767
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:764
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:763
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:766
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg6Type
W6 Arg6Type
Sixth argument type.
Definition:
type-traits.h:850
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:845
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:846
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg5Type
W5 Arg5Type
Fifth argument type.
Definition:
type-traits.h:849
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:844
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg4Type
W4 Arg4Type
Fourth argument type.
Definition:
type-traits.h:848
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2, W3, W4, W5, W6) const >::Arg3Type
W3 Arg3Type
Third argument type.
Definition:
type-traits.h:847
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:575
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:576
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:574
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::Arg2Type
W2 Arg2Type
Second argument type.
Definition:
type-traits.h:550
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:549
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1, W2)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:548
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1) const >::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:523
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1) const >::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:524
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1)>::ReturnType
U ReturnType
Return type.
Definition:
type-traits.h:499
ns3::TypeTraits::PtrToMemberTraits< U(V::*)(W1)>::Arg1Type
W1 Arg1Type
First argument type.
Definition:
type-traits.h:500
ns3::TypeTraits::PtrToMemberTraits
Not a pointer to member type.
Definition:
type-traits.h:427
ns3::TypeTraits::PtrToMemberTraits::IsPointerToMember
@ IsPointerToMember
Not a pointer to member.
Definition:
type-traits.h:431
ns3::TypeTraits::ReferenceTraits< U & >::ReferencedType
U ReferencedType
Base type.
Definition:
type-traits.h:96
ns3::TypeTraits::ReferenceTraits
Not a reference type.
Definition:
type-traits.h:73
ns3::TypeTraits::ReferenceTraits::ReferencedType
U ReferencedType
Base type.
Definition:
type-traits.h:80
ns3::TypeTraits::ReferenceTraits::IsReference
@ IsReference
Not a reference type.
Definition:
type-traits.h:77
ns3::TypeTraits::UnConst< const U >::Result
U Result
Non-const type.
Definition:
type-traits.h:64
ns3::TypeTraits::UnConst
Not a const type.
Definition:
type-traits.h:53
ns3::TypeTraits::UnConst::Result
U Result
Non-const type.
Definition:
type-traits.h:54
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:857
ns3::TypeTraits::IsPtr
@ IsPtr
Ptr predicate.
Definition:
type-traits.h:873
ns3::TypeTraits::IsFunctionPointer
@ IsFunctionPointer
Function pointer predicate.
Definition:
type-traits.h:877
ns3::TypeTraits::IsPointerToMember
@ IsPointerToMember
Pointer to member predicate.
Definition:
type-traits.h:869
ns3::TypeTraits::IsReference
@ IsReference
Reference predicate.
Definition:
type-traits.h:875
ns3::TypeTraits::IsPointer
@ IsPointer
Pointer predicate.
Definition:
type-traits.h:871
ns3::TypeTraits::PointerToMemberTraits
PtrToMemberTraits< T > PointerToMemberTraits
Pointer to member traits type.
Definition:
type-traits.h:881
ns3::TypeTraits::PtrBaseType
PtrBase< T >::Type PtrBaseType
Ptr base type.
Definition:
type-traits.h:863
ns3::TypeTraits::FunctionPointerTraits
FunctionPtrTraits< T > FunctionPointerTraits
Function pointer traits.
Definition:
type-traits.h:883
ns3::TypeTraits::BaseType
Base< T >::Type BaseType
Base type, after removing &, * and const.
Definition:
type-traits.h:861
ns3::TypeTraits::PointeeType
PointerTraits< T >::PointeeType PointeeType
Pointee type.
Definition:
type-traits.h:859
ns3::TypeTraits::NonConstType
UnConst< T >::Result NonConstType
Not a const type.
Definition:
type-traits.h:855
src
core
model
type-traits.h
Generated on Sun Jul 2 2023 18:21:33 for ns-3 by
1.9.6