thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Pointer
RCPtr.h
1
// -*- C++ -*-
2
//
3
// RCPtr.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 1999-2019 Leif Lonnblad
5
//
6
// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef ThePEG_RCPtr_H
10
#define ThePEG_RCPtr_H
11
// This is the declaration of the RCPtrBase,
12
13
14
#include "ReferenceCounted.h"
15
#include "RCPtr.fh"
16
#include "PtrTraits.h"
17
18
namespace
ThePEG
{
19
namespace
Pointer {
20
30
class
RCPtrBase
{
31
33
typedef
ReferenceCounted::CounterType
CounterType
;
34
35
protected
:
36
40
void
increment
(
const
ReferenceCounted
* rcp) {
41
if
( rcp ) rcp->
incrementReferenceCount
();
42
}
46
bool
release
(
const
ReferenceCounted
* rcp) {
47
return
rcp && rcp->
decrementReferenceCount
();
48
}
49
50
};
51
59
template
<
typename
T>
60
class
RCPtr
:
public
RCPtrBase
{
61
62
public
:
63
65
typedef
void
iterator_category
;
67
typedef
void
difference_type
;
69
typedef
T *
pointer
;
71
typedef
const
T *
const_pointer
;
73
typedef
T &
reference
;
75
typedef
const
T &
const_reference
;
77
typedef
T
value_type
;
78
79
public
:
80
85
RCPtr
() :
ptr
(nullptr) {}
86
90
RCPtr
(
decltype
(
nullptr
) ) :
ptr
(nullptr) {}
91
95
RCPtr
(
const
RCPtr
& p) :
ptr
(p.
ptr
) {
increment
(); }
96
101
template
<
typename
UPtr>
102
RCPtr
(
const
UPtr & u)
103
:
ptr
(
PtrTraits
<UPtr>::barePointer(u)) {
increment
(); }
104
108
explicit
RCPtr
(
pointer
p) :
ptr
(p) {
increment
(); }
109
114
~RCPtr
() {
release
(); }
115
120
static
RCPtr
Create
() {
121
RCPtr<T>
p;
122
return
p.
create
();
123
}
124
129
static
RCPtr
Create
(
const_reference
t) {
130
RCPtr<T>
p;
131
return
p.
create
(t);
132
}
133
134
139
RCPtr
&
create
() {
140
release
();
141
ptr
=
new
T;
142
// increment(); // ReferenceCounted() constructor starts at 1
143
return
*
this
;
144
}
145
150
RCPtr
&
create
(
const_reference
t) {
151
release
();
152
ptr
=
new
T(t);
153
// increment(); // ReferenceCounted() constructor starts at 1
154
return
*
this
;
155
}
156
160
RCPtr
&
operator=
(
const
RCPtr
& p) {
161
if
(
ptr
== p.
ptr
)
return
*
this
;
162
release
();
163
ptr
= p.
ptr
;
164
increment
();
165
return
*
this
;
166
}
167
172
template
<
typename
UPtr>
173
RCPtr
&
operator=
(
const
UPtr & u) {
174
if
(
ptr
==
PtrTraits<UPtr>::barePointer
(u) )
return
*
this
;
175
release
();
176
ptr
=
PtrTraits<UPtr>::barePointer
(u);
177
increment
();
178
return
*
this
;
179
}
180
185
template
<
typename
UPtr>
186
RCPtr
&
assignDynamic
(
const
UPtr & u) {
187
pointer
up =
dynamic_cast<
pointer
>
(
PtrTraits<UPtr>::barePointer
(u));
188
if
(
ptr
== up )
return
*
this
;
189
release
();
190
ptr
= up;
191
increment
();
192
return
*
this
;
193
}
194
199
template
<
typename
UPtr>
200
RCPtr
&
assignConst
(
const
UPtr & u) {
201
pointer
up =
const_cast<
pointer
>
(
PtrTraits<UPtr>::barePointer
(u));
202
if
(
ptr
== up )
return
*
this
;
203
release
();
204
ptr
= up;
205
increment
();
206
return
*
this
;
207
}
208
212
void
swap
(
RCPtr
& p) {
213
const
pointer
tmp =
ptr
;
214
ptr
= p.
ptr
;
215
p.
ptr
= tmp;
216
// std::swap(ptr, p.ptr);
217
}
218
222
bool
operator==
(
const
RCPtr
& p)
const
{
return
ptr
== p.
ptr
; }
223
227
bool
operator!=
(
const
RCPtr
& p)
const
{
return
ptr
!= p.
ptr
; }
228
232
bool
operator==
(
const_pointer
p)
const
{
return
ptr
== p; }
233
237
bool
operator!=
(
const_pointer
p)
const
{
return
ptr
!= p; }
238
242
template
<
typename
UPtr>
243
bool
operator==
(
const
UPtr & u)
const
{
244
return
ptr
==
PtrTraits<UPtr>::barePointer
(u);
245
}
246
250
template
<
typename
UPtr>
251
bool
operator!=
(
const
UPtr & u)
const
{
252
return
ptr
!=
PtrTraits<UPtr>::barePointer
(u);
253
}
254
258
bool
operator<
(
const
RCPtr
& p)
const
{
259
return
(
ptr
&& p.
ptr
&&
ptr
->uniqueId != p.
ptr
->uniqueId ) ?
260
ptr
->uniqueId < p.
ptr
->uniqueId :
ptr
< p.
ptr
;
261
}
262
266
bool
operator<
(
const_pointer
p)
const
{
267
return
(
ptr
&& p &&
ptr
->uniqueId != p->uniqueId ) ?
268
ptr
->uniqueId < p->uniqueId :
ptr
< p;
269
}
270
274
bool
operator!
()
const
{
return
!
ptr
; }
275
279
operator
T * ()
const
{
return
ptr
; }
280
284
pointer
operator->
()
const
{
return
ptr
; }
285
289
reference
operator*
()
const
{
return
*
ptr
; }
290
291
private
:
292
296
void
increment
() {
RCPtrBase::increment
(
ptr
); }
297
302
void
release
() {
if
(
RCPtrBase::release
(
ptr
) )
delete
ptr
; }
303
307
pointer
ptr
;
308
309
};
310
319
template
<
typename
T>
320
class
ConstRCPtr
:
public
RCPtrBase
{
321
322
public
:
323
325
typedef
void
iterator_category
;
327
typedef
void
difference_type
;
329
typedef
T *
pointer
;
331
typedef
const
T *
const_pointer
;
333
typedef
T &
reference
;
335
typedef
const
T &
const_reference
;
337
typedef
T
value_type
;
338
339
public
:
340
344
ConstRCPtr
() :
ptr
(nullptr) {}
345
349
ConstRCPtr
(
decltype
(
nullptr
) ) :
ptr
(nullptr) {}
350
354
ConstRCPtr
(
const
ConstRCPtr
& p) :
ptr
(p.
ptr
) {
increment
(); }
355
360
template
<
typename
UPtr>
361
ConstRCPtr
(
const
UPtr & u) :
ptr
(
PtrTraits
<UPtr>::barePointer(u)) {
increment
(); }
362
366
explicit
ConstRCPtr
(
const_pointer
p) :
ptr
(p) {
increment
(); }
367
372
~ConstRCPtr
() {
release
(); }
373
377
ConstRCPtr
&
operator=
(
const
ConstRCPtr
& p) {
378
if
(
ptr
== p.
ptr
)
return
*
this
;
379
release
();
380
ptr
= p.
ptr
;
381
increment
();
382
return
*
this
;
383
}
384
389
template
<
typename
UPtr>
390
ConstRCPtr
&
operator=
(
const
UPtr & u) {
391
if
(
ptr
==
PtrTraits<UPtr>::barePointer
(u) )
return
*
this
;
392
release
();
393
ptr
=
PtrTraits<UPtr>::barePointer
(u);
394
increment
();
395
return
*
this
;
396
}
397
402
template
<
typename
UPtr>
403
ConstRCPtr
&
assignDynamic
(
const
UPtr & u) {
404
const_pointer
up =
405
dynamic_cast<
const_pointer
>
(
PtrTraits<UPtr>::barePointer
(u));
406
if
(
ptr
== up )
return
*
this
;
407
release
();
408
ptr
= up;
409
increment
();
410
return
*
this
;
411
}
412
416
void
swap
(
ConstRCPtr
& p) {
417
const
const_pointer
tmp =
ptr
;
418
ptr
= p.
ptr
;
419
p.
ptr
= tmp;
420
// std::swap(ptr, p.ptr);
421
}
422
426
bool
operator==
(
const
ConstRCPtr
& p)
const
{
return
ptr
== p.
ptr
; }
427
431
bool
operator!=
(
const
ConstRCPtr
& p)
const
{
return
ptr
!= p.
ptr
; }
432
436
bool
operator==
(
const_pointer
p)
const
{
return
ptr
== p; }
437
441
bool
operator!=
(
const_pointer
p)
const
{
return
ptr
!= p; }
442
446
template
<
typename
UPtr>
447
bool
operator==
(
const
UPtr & u)
const
{
return
ptr
==
PtrTraits<UPtr>::barePointer
(u); }
448
452
template
<
typename
UPtr>
453
bool
operator!=
(
const
UPtr & u)
const
{
return
ptr
!=
PtrTraits<UPtr>::barePointer
(u); }
454
458
bool
operator<
(
const
ConstRCPtr
& p)
const
{
459
return
(
ptr
&& p.
ptr
&&
ptr
->uniqueId != p.
ptr
->uniqueId ) ?
460
ptr
->uniqueId < p.
ptr
->uniqueId :
ptr
< p.
ptr
;
461
}
462
466
bool
operator<
(
const_pointer
p)
const
{
467
return
(
ptr
&& p &&
ptr
->uniqueId != p->uniqueId ) ?
468
ptr
->uniqueId < p->uniqueId :
ptr
< p;
469
}
470
474
bool
operator!
()
const
{
return
!
ptr
; }
475
479
operator
const
T * ()
const
{
return
ptr
; }
480
484
const_pointer
operator->
()
const
{
return
ptr
; }
485
489
const_reference
operator*
()
const
{
return
*
ptr
; }
490
491
private
:
492
496
void
increment
() {
RCPtrBase::increment
(
ptr
); }
497
502
void
release
() {
if
(
RCPtrBase::release
(
ptr
) )
delete
ptr
; }
503
507
const_pointer
ptr
;
508
509
};
510
518
template
<
typename
T>
519
class
TransientRCPtr
{
520
521
public
:
522
524
typedef
void
iterator_category
;
526
typedef
void
difference_type
;
528
typedef
T *
pointer
;
530
typedef
const
T *
const_pointer
;
532
typedef
T &
reference
;
534
typedef
const
T &
const_reference
;
536
typedef
T
value_type
;
537
538
public
:
539
543
TransientRCPtr
() :
ptr
(nullptr) {}
544
548
TransientRCPtr
(
decltype
(
nullptr
) ) :
ptr
(nullptr) {}
549
553
TransientRCPtr
(
const
TransientRCPtr
& p) :
ptr
(p.
ptr
) {}
554
559
template
<
typename
UPtr>
560
TransientRCPtr
(
const
UPtr & u) :
ptr
(
PtrTraits
<UPtr>::barePointer(u)) {}
561
565
explicit
TransientRCPtr
(
pointer
p) :
ptr
(p) {}
566
570
~TransientRCPtr
() {}
571
575
TransientRCPtr
&
operator=
(
const
TransientRCPtr
& p) {
576
ptr
= p.
ptr
;
577
return
*
this
;
578
}
579
584
template
<
typename
UPtr>
585
TransientRCPtr
&
operator=
(
const
UPtr & u) {
586
ptr
=
PtrTraits<UPtr>::barePointer
(u);
587
return
*
this
;
588
}
589
594
template
<
typename
UPtr>
595
TransientRCPtr
&
assignDynamic
(
const
UPtr & u) {
596
ptr
=
dynamic_cast<
pointer
>
(
PtrTraits<UPtr>::barePointer
(u));
597
return
*
this
;
598
}
599
604
template
<
typename
UPtr>
605
TransientRCPtr
&
assignConst
(
const
UPtr & u) {
606
ptr
=
const_cast<
pointer
>
(
PtrTraits<UPtr>::barePointer
(u));
607
return
*
this
;
608
}
609
613
bool
operator==
(
const
TransientRCPtr
& p)
const
{
return
ptr
== p.
ptr
; }
614
618
bool
operator!=
(
const
TransientRCPtr
& p)
const
{
return
ptr
!= p.
ptr
; }
619
623
bool
operator==
(
const_pointer
p)
const
{
return
ptr
== p; }
624
628
bool
operator!=
(
const_pointer
p)
const
{
return
ptr
!= p; }
629
633
template
<
typename
UPtr>
634
bool
operator==
(
const
UPtr & u)
const
{
return
ptr
==
PtrTraits<UPtr>::barePointer
(u); }
635
639
template
<
typename
UPtr>
640
bool
operator!=
(
const
UPtr & u)
const
{
return
ptr
!=
PtrTraits<UPtr>::barePointer
(u); }
641
645
bool
operator<
(
const
TransientRCPtr
& p)
const
{
646
return
(
ptr
&& p.
ptr
&&
ptr
->uniqueId != p.
ptr
->uniqueId ) ?
647
ptr
->uniqueId < p.
ptr
->uniqueId :
ptr
< p.
ptr
;
648
}
649
653
bool
operator<
(
const_pointer
p)
const
{
654
return
(
ptr
&& p &&
ptr
->uniqueId != p->uniqueId ) ?
655
ptr
->uniqueId < p->uniqueId :
ptr
< p;
656
}
657
661
bool
operator!
()
const
{
return
!
ptr
; }
662
666
operator
T * ()
const
{
return
ptr
; }
667
671
pointer
operator->
()
const
{
return
ptr
; }
672
676
reference
operator*
()
const
{
return
*
ptr
; }
677
678
private
:
679
683
pointer
ptr
;
684
685
};
686
695
template
<
typename
T>
696
class
TransientConstRCPtr
{
697
698
public
:
699
701
typedef
void
iterator_category
;
703
typedef
void
difference_type
;
705
typedef
T *
pointer
;
707
typedef
const
T *
const_pointer
;
709
typedef
T &
reference
;
711
typedef
const
T &
const_reference
;
713
typedef
T
value_type
;
714
715
public
:
716
720
TransientConstRCPtr
() :
ptr
(nullptr) {}
721
725
TransientConstRCPtr
(
decltype
(
nullptr
) ) :
ptr
(nullptr) {}
726
730
TransientConstRCPtr
(
const
TransientConstRCPtr
& p) :
ptr
(p.
ptr
) {}
731
736
template
<
typename
UPtr>
737
TransientConstRCPtr
(
const
UPtr & u) :
ptr
(
PtrTraits
<UPtr>::barePointer(u)) {}
738
742
explicit
TransientConstRCPtr
(
const_pointer
p) :
ptr
(p) {}
743
747
~TransientConstRCPtr
() {}
748
752
TransientConstRCPtr
&
operator=
(
const
TransientConstRCPtr
& p) {
753
ptr
= p.
ptr
;
754
return
*
this
;
755
}
756
761
template
<
typename
UPtr>
762
TransientConstRCPtr
&
operator=
(
const
UPtr & u) {
763
ptr
=
PtrTraits<UPtr>::barePointer
(u);
764
return
*
this
;
765
}
766
771
template
<
typename
UPtr>
772
TransientConstRCPtr
&
assignDynamic
(
const
UPtr & u) {
773
ptr
=
dynamic_cast<
const_pointer
>
(
PtrTraits<UPtr>::barePointer
(u));
774
return
*
this
;
775
}
776
780
bool
operator==
(
const
TransientConstRCPtr
& p)
const
{
return
ptr
== p.
ptr
; }
781
785
bool
operator!=
(
const
TransientConstRCPtr
& p)
const
{
return
ptr
!= p.
ptr
; }
786
790
bool
operator==
(
const_pointer
p)
const
{
return
ptr
== p; }
791
792
796
bool
operator!=
(
const_pointer
p)
const
{
return
ptr
!= p; }
797
801
template
<
typename
UPtr>
802
bool
operator==
(
const
UPtr & u)
const
{
return
ptr
==
PtrTraits<UPtr>::barePointer
(u); }
803
807
template
<
typename
UPtr>
808
bool
operator!=
(
const
UPtr & u)
const
{
return
ptr
!=
PtrTraits<UPtr>::barePointer
(u); }
809
813
bool
operator<
(
const
TransientConstRCPtr
& p)
const
{
814
return
(
ptr
&& p.
ptr
&&
ptr
->uniqueId != p.
ptr
->uniqueId ) ?
815
ptr
->uniqueId < p.
ptr
->uniqueId :
ptr
< p.
ptr
;
816
}
817
821
bool
operator<
(
const_pointer
p)
const
{
822
return
(
ptr
&& p &&
ptr
->uniqueId != p->uniqueId ) ?
823
ptr
->uniqueId < p->uniqueId :
ptr
< p;
824
}
825
829
bool
operator!
()
const
{
return
!
ptr
; }
830
834
operator
const
T * ()
const
{
return
ptr
; }
835
839
const_pointer
operator->
()
const
{
return
ptr
; }
840
844
const_reference
operator*
()
const
{
return
*
ptr
; }
845
846
private
:
847
851
const_pointer
ptr
;
852
853
};
854
858
template
<
typename
T>
859
struct
PtrTraits
<
RCPtr
<T> >:
public
PtrTraitsType
{
860
862
typedef
typename
RCPtr<T>::value_type
value_type
;
864
typedef
typename
RCPtr<T>::reference
reference
;
866
typedef
typename
RCPtr<T>::const_reference
const_reference
;
868
typedef
RCPtr<T>
pointer
;
870
typedef
ConstRCPtr<T>
const_pointer
;
872
typedef
TransientRCPtr<T>
transient_pointer
;
874
typedef
TransientConstRCPtr<T>
transient_const_pointer
;
875
879
static
T *
barePointer
(
const
RCPtr<T>
& p) {
return
p.operator->(); }
880
884
static
pointer
create
() {
return
RCPtr<T>::Create
(); }
885
889
static
pointer
create
(
const_reference
t) {
return
RCPtr<T>::Create
(t); }
890
894
static
void
destroy
(
pointer
) {}
895
899
template
<
typename
UPtr>
900
static
pointer
DynamicCast
(
const
UPtr & u) {
901
pointer
t;
902
t.assignDynamic(u);
903
return
t;
904
}
905
909
template
<
typename
UPtr>
910
static
pointer
ConstCast
(
const
UPtr & u) {
911
pointer
t;
912
t.assignConst(u);
913
return
t;
914
}
915
919
static
pointer
PtrCast
(T * t) {
920
return
pointer
(t);
921
}
922
926
static
const
bool
reference_counted =
true
;
927
928
};
929
933
template
<
typename
T>
934
struct
PtrTraits
<
ConstRCPtr
<T> >:
public
PtrTraitsType
{
935
937
typedef
typename
ConstRCPtr<T>::value_type
value_type
;
939
typedef
typename
ConstRCPtr<T>::reference
reference
;
941
typedef
typename
ConstRCPtr<T>::const_reference
const_reference
;
943
typedef
RCPtr<T>
pointer
;
945
typedef
ConstRCPtr<T>
const_pointer
;
947
typedef
TransientRCPtr<T>
transient_pointer
;
949
typedef
TransientConstRCPtr<T>
transient_const_pointer
;
950
954
static
const
T *
barePointer
(
const
ConstRCPtr<T>
& p) {
955
return
p.operator->();
956
}
957
961
static
const_pointer
create
() {
962
return
RCPtr<T>::Create
();
963
}
964
968
static
const_pointer
create
(
const_reference
t) {
969
return
RCPtr<T>::Create
(t);
970
}
971
975
static
void
destroy
(
const_pointer
) {}
976
980
template
<
typename
UPtr>
981
static
const_pointer
DynamicCast
(
const
UPtr & u) {
982
const_pointer
t;
983
t.assignDynamic(u);
984
return
t;
985
}
986
990
template
<
typename
UPtr>
991
static
const_pointer
ConstCast
(
const
UPtr & u) {
992
const_pointer
t;
993
t.assignDynamic(u);
994
return
t;
995
}
996
1000
static
const_pointer
PtrCast
(
const
T * t) {
1001
return
const_pointer
(t);
1002
}
1003
1007
static
const
bool
reference_counted =
true
;
1008
1009
};
1010
1014
template
<
typename
T>
1015
struct
PtrTraits
<
TransientRCPtr
<T> >:
public
PtrTraitsType
{
1016
1018
typedef
typename
TransientRCPtr<T>::value_type
value_type
;
1020
typedef
typename
TransientRCPtr<T>::reference
reference
;
1022
typedef
typename
TransientRCPtr<T>::const_reference
const_reference
;
1024
typedef
RCPtr<T>
pointer
;
1026
typedef
ConstRCPtr<T>
const_pointer
;
1028
typedef
TransientRCPtr<T>
transient_pointer
;
1030
typedef
TransientConstRCPtr<T>
transient_const_pointer
;
1031
1035
static
T *
barePointer
(
const
TransientRCPtr<T>
& p) {
1036
return
p.operator->();
1037
}
1038
1042
static
void
destroy
(
transient_pointer
) {}
1043
1047
template
<
typename
UPtr>
1048
static
transient_pointer
DynamicCast
(
const
UPtr & u) {
1049
transient_pointer
t;
1050
t.assignDynamic(u);
1051
return
t;
1052
}
1053
1057
static
transient_pointer
ConstCast
(
transient_const_pointer
c) {
1058
transient_pointer
t;
1059
t.assignConst(c);
1060
return
t;
1061
}
1062
1066
static
transient_pointer
PtrCast
(T * t) {
1067
return
transient_pointer
(t);
1068
}
1069
1073
static
const
bool
reference_counted =
false
;
1074
1075
};
1076
1080
template
<
typename
T>
1081
struct
PtrTraits
<
TransientConstRCPtr
<T> >:
public
PtrTraitsType
{
1082
1084
typedef
typename
TransientConstRCPtr<T>::value_type
value_type
;
1086
typedef
typename
TransientConstRCPtr<T>::reference
reference
;
1088
typedef
typename
TransientConstRCPtr<T>::const_reference
const_reference
;
1090
typedef
RCPtr<T>
pointer
;
1092
typedef
ConstRCPtr<T>
const_pointer
;
1094
typedef
TransientRCPtr<T>
transient_pointer
;
1096
typedef
TransientConstRCPtr<T>
transient_const_pointer
;
1097
1101
static
const
T *
barePointer
(
const
TransientConstRCPtr<T>
& p) {
1102
return
p.operator->();
1103
}
1104
1108
static
void
destroy
(
transient_const_pointer
) {}
1109
1113
template
<
typename
UPtr>
1114
static
transient_const_pointer
DynamicCast
(
const
UPtr & u) {
1115
transient_const_pointer
t;
1116
t.assignDynamic(u);
1117
return
t;
1118
}
1119
1123
template
<
typename
UPtr>
1124
static
transient_const_pointer
ConstCast
(
const
UPtr & u) {
1125
transient_const_pointer
t;
1126
t.assignConst(u);
1127
return
t;
1128
}
1129
1133
static
transient_const_pointer
PtrCast
(
const
T * t) {
1134
return
transient_const_pointer
(t);
1135
}
1136
1140
static
const
bool
reference_counted =
false
;
1141
1142
};
1143
1144
}
1145
}
1146
1147
namespace
std
{
1148
1153
template
<
typename
T>
1154
inline
void
swap
(
ThePEG::Pointer::RCPtr<T>
& t1,
1155
ThePEG::Pointer::RCPtr<T>
& t2) {
1156
t1.
swap
(t2);
1157
}
1158
1163
template
<
typename
T>
1164
inline
void
swap
(
ThePEG::Pointer::ConstRCPtr<T>
& t1,
1165
ThePEG::Pointer::ConstRCPtr<T>
& t2) {
1166
t1.
swap
(t2);
1167
}
1168
1169
}
1170
1171
#endif
/* ThePEG_RCPtr_H */
ThePEG::Pointer::ConstRCPtr
ConstRCPtr is a reference counted (smart) const pointer.
Definition:
RCPtr.h:320
ThePEG::Pointer::ConstRCPtr::iterator_category
void iterator_category
Template argument typedef.
Definition:
RCPtr.h:325
ThePEG::Pointer::ConstRCPtr::pointer
T * pointer
Template argument typedef.
Definition:
RCPtr.h:329
ThePEG::Pointer::ConstRCPtr::operator=
ConstRCPtr & operator=(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value implicitly convertible t...
Definition:
RCPtr.h:390
ThePEG::Pointer::ConstRCPtr::ConstRCPtr
ConstRCPtr()
Constructor for null pointer.
Definition:
RCPtr.h:344
ThePEG::Pointer::ConstRCPtr::swap
void swap(ConstRCPtr &p)
Make p point to the object pointed to by this and vice versa.
Definition:
RCPtr.h:416
ThePEG::Pointer::ConstRCPtr::assignDynamic
ConstRCPtr & assignDynamic(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value which can be cast dynami...
Definition:
RCPtr.h:403
ThePEG::Pointer::ConstRCPtr::operator==
bool operator==(const ConstRCPtr &p) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:426
ThePEG::Pointer::ConstRCPtr::operator==
bool operator==(const UPtr &u) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:447
ThePEG::Pointer::ConstRCPtr::operator<
bool operator<(const ConstRCPtr &p) const
Test for ordering.
Definition:
RCPtr.h:458
ThePEG::Pointer::ConstRCPtr::increment
void increment()
Increment the counter of the object pointed to.
Definition:
RCPtr.h:496
ThePEG::Pointer::ConstRCPtr::operator!
bool operator!() const
Returns true if the underlying pointer is null.
Definition:
RCPtr.h:474
ThePEG::Pointer::ConstRCPtr::release
void release()
Stop pointing to the current object and delete it if this was the last pointer to it.
Definition:
RCPtr.h:502
ThePEG::Pointer::ConstRCPtr::reference
T & reference
Template argument typedef.
Definition:
RCPtr.h:333
ThePEG::Pointer::ConstRCPtr::ConstRCPtr
ConstRCPtr(decltype(nullptr))
Constructor for nullptr.
Definition:
RCPtr.h:349
ThePEG::Pointer::ConstRCPtr::ConstRCPtr
ConstRCPtr(const_pointer p)
Construction from real pointer.
Definition:
RCPtr.h:366
ThePEG::Pointer::ConstRCPtr::difference_type
void difference_type
Template argument typedef.
Definition:
RCPtr.h:327
ThePEG::Pointer::ConstRCPtr::operator*
const_reference operator*() const
Dereferencing.
Definition:
RCPtr.h:489
ThePEG::Pointer::ConstRCPtr::const_pointer
const T * const_pointer
Template argument typedef.
Definition:
RCPtr.h:331
ThePEG::Pointer::ConstRCPtr::value_type
T value_type
Template argument typedef.
Definition:
RCPtr.h:337
ThePEG::Pointer::ConstRCPtr::ptr
const_pointer ptr
The actual pointer.
Definition:
RCPtr.h:507
ThePEG::Pointer::ConstRCPtr::operator<
bool operator<(const_pointer p) const
Test for ordering.
Definition:
RCPtr.h:466
ThePEG::Pointer::ConstRCPtr::operator=
ConstRCPtr & operator=(const ConstRCPtr &p)
Assignment.
Definition:
RCPtr.h:377
ThePEG::Pointer::ConstRCPtr::ConstRCPtr
ConstRCPtr(const ConstRCPtr &p)
Copy constructor.
Definition:
RCPtr.h:354
ThePEG::Pointer::ConstRCPtr::operator!=
bool operator!=(const UPtr &u) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:453
ThePEG::Pointer::ConstRCPtr::operator->
const_pointer operator->() const
Member access.
Definition:
RCPtr.h:484
ThePEG::Pointer::ConstRCPtr::operator!=
bool operator!=(const_pointer p) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:441
ThePEG::Pointer::ConstRCPtr::const_reference
const T & const_reference
Template argument typedef.
Definition:
RCPtr.h:335
ThePEG::Pointer::ConstRCPtr::~ConstRCPtr
~ConstRCPtr()
Destructor.
Definition:
RCPtr.h:372
ThePEG::Pointer::ConstRCPtr::operator!=
bool operator!=(const ConstRCPtr &p) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:431
ThePEG::Pointer::ConstRCPtr::operator==
bool operator==(const_pointer p) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:436
ThePEG::Pointer::ConstRCPtr::ConstRCPtr
ConstRCPtr(const UPtr &u)
Copyconstructor for class UPtr which has operator-> defined resulting in a value implicitly convertib...
Definition:
RCPtr.h:361
ThePEG::Pointer::RCPtrBase
RCPtrBase is the base class of RCPtr and ConstRCPtr which are reference counted (smart) pointers.
Definition:
RCPtr.h:30
ThePEG::Pointer::RCPtrBase::increment
void increment(const ReferenceCounted *rcp)
Increment the counter of a reference counted object.
Definition:
RCPtr.h:40
ThePEG::Pointer::RCPtrBase::CounterType
ReferenceCounted::CounterType CounterType
Get counter type from ReferenceCounted class.
Definition:
RCPtr.h:33
ThePEG::Pointer::RCPtrBase::release
bool release(const ReferenceCounted *rcp)
Decrement the counter of a reference counted object.
Definition:
RCPtr.h:46
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::Pointer::RCPtr::RCPtr
RCPtr(pointer p)
Construction from real pointer.
Definition:
RCPtr.h:108
ThePEG::Pointer::RCPtr::operator<
bool operator<(const_pointer p) const
Test for ordering.
Definition:
RCPtr.h:266
ThePEG::Pointer::RCPtr::Create
static RCPtr Create()
Allocate and construct an object of class T and return a RCPtr to it.
Definition:
RCPtr.h:120
ThePEG::Pointer::RCPtr::operator==
bool operator==(const RCPtr &p) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:222
ThePEG::Pointer::RCPtr::operator->
pointer operator->() const
Member access.
Definition:
RCPtr.h:284
ThePEG::Pointer::RCPtr::RCPtr
RCPtr(const RCPtr &p)
Copy constructor.
Definition:
RCPtr.h:95
ThePEG::Pointer::RCPtr::operator==
bool operator==(const UPtr &u) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:243
ThePEG::Pointer::RCPtr::operator!=
bool operator!=(const_pointer p) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:237
ThePEG::Pointer::RCPtr::operator<
bool operator<(const RCPtr &p) const
Test for ordering.
Definition:
RCPtr.h:258
ThePEG::Pointer::RCPtr::RCPtr
RCPtr(const UPtr &u)
Copy constructor for class UPtr which has operator-> defined resulting in a value implicitly converti...
Definition:
RCPtr.h:102
ThePEG::Pointer::RCPtr::increment
void increment()
Increment the counter of the object pointed to.
Definition:
RCPtr.h:296
ThePEG::Pointer::RCPtr::operator=
RCPtr & operator=(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value implicitly convertible t...
Definition:
RCPtr.h:173
ThePEG::Pointer::RCPtr::RCPtr
RCPtr()
Definition:
RCPtr.h:85
ThePEG::Pointer::RCPtr::ptr
pointer ptr
The actual pointer.
Definition:
RCPtr.h:307
ThePEG::Pointer::RCPtr::swap
void swap(RCPtr &p)
Make p point to the object pointed to by this and vice versa.
Definition:
RCPtr.h:212
ThePEG::Pointer::RCPtr::operator!
bool operator!() const
Returns true if the underlying pointer is null.
Definition:
RCPtr.h:274
ThePEG::Pointer::RCPtr::operator!=
bool operator!=(const RCPtr &p) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:227
ThePEG::Pointer::RCPtr::operator==
bool operator==(const_pointer p) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:232
ThePEG::Pointer::RCPtr::pointer
T * pointer
Template argument typedef.
Definition:
RCPtr.h:69
ThePEG::Pointer::RCPtr::release
void release()
Stop pointing to the current object and delete it if this was the last pointer to it.
Definition:
RCPtr.h:302
ThePEG::Pointer::RCPtr::RCPtr
RCPtr(decltype(nullptr))
Constructor for nullptr.
Definition:
RCPtr.h:90
ThePEG::Pointer::RCPtr::const_pointer
const T * const_pointer
Template argument typedef.
Definition:
RCPtr.h:71
ThePEG::Pointer::RCPtr::reference
T & reference
Template argument typedef.
Definition:
RCPtr.h:73
ThePEG::Pointer::RCPtr::operator=
RCPtr & operator=(const RCPtr &p)
Assignment.
Definition:
RCPtr.h:160
ThePEG::Pointer::RCPtr::assignConst
RCPtr & assignConst(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value which can be const_cast'...
Definition:
RCPtr.h:200
ThePEG::Pointer::RCPtr::assignDynamic
RCPtr & assignDynamic(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value which can be cast dynami...
Definition:
RCPtr.h:186
ThePEG::Pointer::RCPtr::operator!=
bool operator!=(const UPtr &u) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:251
ThePEG::Pointer::RCPtr::const_reference
const T & const_reference
Template argument typedef.
Definition:
RCPtr.h:75
ThePEG::Pointer::RCPtr::operator*
reference operator*() const
Dereferencing.
Definition:
RCPtr.h:289
ThePEG::Pointer::RCPtr::create
RCPtr & create()
Allocate and construct an object of class T and point to it, possibly deleting the object pointed to ...
Definition:
RCPtr.h:139
ThePEG::Pointer::RCPtr::create
RCPtr & create(const_reference t)
Allocate and copy-construct an object of class T and point to it, possibly deleting the object pointe...
Definition:
RCPtr.h:150
ThePEG::Pointer::RCPtr::difference_type
void difference_type
Template argument typedef.
Definition:
RCPtr.h:67
ThePEG::Pointer::RCPtr::Create
static RCPtr Create(const_reference t)
Allocate and copy-construct an object of class T and return a RCPtr to it.
Definition:
RCPtr.h:129
ThePEG::Pointer::RCPtr::value_type
T value_type
Template argument typedef.
Definition:
RCPtr.h:77
ThePEG::Pointer::RCPtr::~RCPtr
~RCPtr()
Destructor.
Definition:
RCPtr.h:114
ThePEG::Pointer::RCPtr::iterator_category
void iterator_category
Template argument typedef.
Definition:
RCPtr.h:65
ThePEG::Pointer::ReferenceCounted
ReferenceCounted must be the (virtual) base class of all classes which may be pointed to by the RCPtr...
Definition:
ReferenceCounted.h:30
ThePEG::Pointer::ReferenceCounted::decrementReferenceCount
bool decrementReferenceCount() const
Decrement with the reference count.
Definition:
ReferenceCounted.h:94
ThePEG::Pointer::ReferenceCounted::CounterType
unsigned int CounterType
The integer type used for counting.
Definition:
ReferenceCounted.h:41
ThePEG::Pointer::ReferenceCounted::incrementReferenceCount
void incrementReferenceCount() const
Increment the reference count.
Definition:
ReferenceCounted.h:86
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::Pointer::TransientConstRCPtr::operator!=
bool operator!=(const TransientConstRCPtr &p) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:785
ThePEG::Pointer::TransientConstRCPtr::operator=
TransientConstRCPtr & operator=(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value implicitly convertible t...
Definition:
RCPtr.h:762
ThePEG::Pointer::TransientConstRCPtr::operator!=
bool operator!=(const_pointer p) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:796
ThePEG::Pointer::TransientConstRCPtr::operator!
bool operator!() const
Returns true if the underlying pointer is null.
Definition:
RCPtr.h:829
ThePEG::Pointer::TransientConstRCPtr::operator*
const_reference operator*() const
Dereferencing.
Definition:
RCPtr.h:844
ThePEG::Pointer::TransientConstRCPtr::TransientConstRCPtr
TransientConstRCPtr(const TransientConstRCPtr &p)
Copy constructor.
Definition:
RCPtr.h:730
ThePEG::Pointer::TransientConstRCPtr::TransientConstRCPtr
TransientConstRCPtr()
Constructor for null pointer.
Definition:
RCPtr.h:720
ThePEG::Pointer::TransientConstRCPtr::operator==
bool operator==(const_pointer p) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:790
ThePEG::Pointer::TransientConstRCPtr::operator<
bool operator<(const TransientConstRCPtr &p) const
Test for ordering.
Definition:
RCPtr.h:813
ThePEG::Pointer::TransientConstRCPtr::TransientConstRCPtr
TransientConstRCPtr(const_pointer p)
Construction from real pointer.
Definition:
RCPtr.h:742
ThePEG::Pointer::TransientConstRCPtr::ptr
const_pointer ptr
The actual pointer.
Definition:
RCPtr.h:851
ThePEG::Pointer::TransientConstRCPtr::operator==
bool operator==(const UPtr &u) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:802
ThePEG::Pointer::TransientConstRCPtr::const_reference
const T & const_reference
Template argument typedef.
Definition:
RCPtr.h:711
ThePEG::Pointer::TransientConstRCPtr::difference_type
void difference_type
Template argument typedef.
Definition:
RCPtr.h:703
ThePEG::Pointer::TransientConstRCPtr::operator!=
bool operator!=(const UPtr &u) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:808
ThePEG::Pointer::TransientConstRCPtr::value_type
T value_type
Template argument typedef.
Definition:
RCPtr.h:713
ThePEG::Pointer::TransientConstRCPtr::~TransientConstRCPtr
~TransientConstRCPtr()
Destructor.
Definition:
RCPtr.h:747
ThePEG::Pointer::TransientConstRCPtr::assignDynamic
TransientConstRCPtr & assignDynamic(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value which can be cast dynami...
Definition:
RCPtr.h:772
ThePEG::Pointer::TransientConstRCPtr::operator<
bool operator<(const_pointer p) const
Test for ordering.
Definition:
RCPtr.h:821
ThePEG::Pointer::TransientConstRCPtr::TransientConstRCPtr
TransientConstRCPtr(decltype(nullptr))
Constructor for nullptr.
Definition:
RCPtr.h:725
ThePEG::Pointer::TransientConstRCPtr::pointer
T * pointer
Template argument typedef.
Definition:
RCPtr.h:705
ThePEG::Pointer::TransientConstRCPtr::reference
T & reference
Template argument typedef.
Definition:
RCPtr.h:709
ThePEG::Pointer::TransientConstRCPtr::TransientConstRCPtr
TransientConstRCPtr(const UPtr &u)
Copyconstructor for class UPtr which has operator-> defined resulting in a value implicitly convertib...
Definition:
RCPtr.h:737
ThePEG::Pointer::TransientConstRCPtr::iterator_category
void iterator_category
Template argument typedef.
Definition:
RCPtr.h:701
ThePEG::Pointer::TransientConstRCPtr::const_pointer
const T * const_pointer
Template argument typedef.
Definition:
RCPtr.h:707
ThePEG::Pointer::TransientConstRCPtr::operator==
bool operator==(const TransientConstRCPtr &p) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:780
ThePEG::Pointer::TransientConstRCPtr::operator->
const_pointer operator->() const
Member access.
Definition:
RCPtr.h:839
ThePEG::Pointer::TransientConstRCPtr::operator=
TransientConstRCPtr & operator=(const TransientConstRCPtr &p)
Assignment.
Definition:
RCPtr.h:752
ThePEG::Pointer::TransientRCPtr
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition:
RCPtr.h:519
ThePEG::Pointer::TransientRCPtr::value_type
T value_type
Template argument typedef.
Definition:
RCPtr.h:536
ThePEG::Pointer::TransientRCPtr::operator<
bool operator<(const TransientRCPtr &p) const
Test for ordering.
Definition:
RCPtr.h:645
ThePEG::Pointer::TransientRCPtr::operator=
TransientRCPtr & operator=(const TransientRCPtr &p)
Assignment.
Definition:
RCPtr.h:575
ThePEG::Pointer::TransientRCPtr::operator->
pointer operator->() const
Member access.
Definition:
RCPtr.h:671
ThePEG::Pointer::TransientRCPtr::iterator_category
void iterator_category
Template argument typedef.
Definition:
RCPtr.h:524
ThePEG::Pointer::TransientRCPtr::TransientRCPtr
TransientRCPtr(const UPtr &u)
Copyconstructor for class UPtr which has operator-> defined resulting in a value implicitly convertib...
Definition:
RCPtr.h:560
ThePEG::Pointer::TransientRCPtr::operator==
bool operator==(const TransientRCPtr &p) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:613
ThePEG::Pointer::TransientRCPtr::difference_type
void difference_type
Template argument typedef.
Definition:
RCPtr.h:526
ThePEG::Pointer::TransientRCPtr::operator*
reference operator*() const
Dereferencing.
Definition:
RCPtr.h:676
ThePEG::Pointer::TransientRCPtr::assignDynamic
TransientRCPtr & assignDynamic(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value which can be cast dynami...
Definition:
RCPtr.h:595
ThePEG::Pointer::TransientRCPtr::operator=
TransientRCPtr & operator=(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value implicitly convertible t...
Definition:
RCPtr.h:585
ThePEG::Pointer::TransientRCPtr::TransientRCPtr
TransientRCPtr()
Constructor for null pointer.
Definition:
RCPtr.h:543
ThePEG::Pointer::TransientRCPtr::TransientRCPtr
TransientRCPtr(pointer p)
Construction from real pointer.
Definition:
RCPtr.h:565
ThePEG::Pointer::TransientRCPtr::const_reference
const T & const_reference
Template argument typedef.
Definition:
RCPtr.h:534
ThePEG::Pointer::TransientRCPtr::operator!
bool operator!() const
Returns true if the underlying pointer is null.
Definition:
RCPtr.h:661
ThePEG::Pointer::TransientRCPtr::operator==
bool operator==(const UPtr &u) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:634
ThePEG::Pointer::TransientRCPtr::operator!=
bool operator!=(const_pointer p) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:628
ThePEG::Pointer::TransientRCPtr::TransientRCPtr
TransientRCPtr(decltype(nullptr))
Constructor for nullptr.
Definition:
RCPtr.h:548
ThePEG::Pointer::TransientRCPtr::operator!=
bool operator!=(const TransientRCPtr &p) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:618
ThePEG::Pointer::TransientRCPtr::TransientRCPtr
TransientRCPtr(const TransientRCPtr &p)
Copy constructor.
Definition:
RCPtr.h:553
ThePEG::Pointer::TransientRCPtr::assignConst
TransientRCPtr & assignConst(const UPtr &u)
Assignment from class UPtr which has operator-> defined resulting in a value whcih can be const_cast'...
Definition:
RCPtr.h:605
ThePEG::Pointer::TransientRCPtr::ptr
pointer ptr
The actual pointer.
Definition:
RCPtr.h:683
ThePEG::Pointer::TransientRCPtr::operator<
bool operator<(const_pointer p) const
Test for ordering.
Definition:
RCPtr.h:653
ThePEG::Pointer::TransientRCPtr::const_pointer
const T * const_pointer
Template argument typedef.
Definition:
RCPtr.h:530
ThePEG::Pointer::TransientRCPtr::pointer
T * pointer
Template argument typedef.
Definition:
RCPtr.h:528
ThePEG::Pointer::TransientRCPtr::~TransientRCPtr
~TransientRCPtr()
Destructor.
Definition:
RCPtr.h:570
ThePEG::Pointer::TransientRCPtr::reference
T & reference
Template argument typedef.
Definition:
RCPtr.h:532
ThePEG::Pointer::TransientRCPtr::operator!=
bool operator!=(const UPtr &u) const
Test for inequality of the underlying pointers.
Definition:
RCPtr.h:640
ThePEG::Pointer::TransientRCPtr::operator==
bool operator==(const_pointer p) const
Test for equality of the underlying pointers.
Definition:
RCPtr.h:623
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
std
STL namespace.
std::swap
void swap(ThePEG::Pointer::RCPtr< T > &t1, ThePEG::Pointer::RCPtr< T > &t2)
Specialization of std::swap to avoid unnecessary (in/de)crements of the reference count.
Definition:
RCPtr.h:1154
ThePEG::Pointer::PtrTraitsType
PtrTraitsType is an empty non-polymorphic base class for all PtrTraits classes.
Definition:
PtrTraits.h:20
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::destroy
static void destroy(const_pointer)
Destroy the object pointed to.
Definition:
RCPtr.h:975
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::reference
ConstRCPtr< T >::reference reference
Template argument typedef.
Definition:
RCPtr.h:939
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::ConstCast
static const_pointer ConstCast(const UPtr &u)
Cast away constness.
Definition:
RCPtr.h:991
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::transient_pointer
TransientRCPtr< T > transient_pointer
Template argument typedef.
Definition:
RCPtr.h:947
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::pointer
RCPtr< T > pointer
Template argument typedef.
Definition:
RCPtr.h:943
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::create
static const_pointer create(const_reference t)
Create an copy of an object and return a pointer to it.
Definition:
RCPtr.h:968
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::create
static const_pointer create()
Create an object and return a pointer to it.
Definition:
RCPtr.h:961
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::const_reference
ConstRCPtr< T >::const_reference const_reference
Template argument typedef.
Definition:
RCPtr.h:941
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::transient_const_pointer
TransientConstRCPtr< T > transient_const_pointer
Template argument typedef.
Definition:
RCPtr.h:949
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::barePointer
static const T * barePointer(const ConstRCPtr< T > &p)
Return the bare pointer of the given pointer object.
Definition:
RCPtr.h:954
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::DynamicCast
static const_pointer DynamicCast(const UPtr &u)
Cast dynamically.
Definition:
RCPtr.h:981
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::const_pointer
ConstRCPtr< T > const_pointer
Template argument typedef.
Definition:
RCPtr.h:945
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::PtrCast
static const_pointer PtrCast(const T *t)
Cast from a basic pointer.
Definition:
RCPtr.h:1000
ThePEG::Pointer::PtrTraits< ConstRCPtr< T > >::value_type
ConstRCPtr< T >::value_type value_type
Template argument typedef.
Definition:
RCPtr.h:937
ThePEG::Pointer::PtrTraits< RCPtr< T > >::ConstCast
static pointer ConstCast(const UPtr &u)
Cast away constness.
Definition:
RCPtr.h:910
ThePEG::Pointer::PtrTraits< RCPtr< T > >::transient_pointer
TransientRCPtr< T > transient_pointer
Template argument typedef.
Definition:
RCPtr.h:872
ThePEG::Pointer::PtrTraits< RCPtr< T > >::value_type
RCPtr< T >::value_type value_type
Template argument typedef.
Definition:
RCPtr.h:862
ThePEG::Pointer::PtrTraits< RCPtr< T > >::pointer
RCPtr< T > pointer
Template argument typedef.
Definition:
RCPtr.h:868
ThePEG::Pointer::PtrTraits< RCPtr< T > >::const_pointer
ConstRCPtr< T > const_pointer
Template argument typedef.
Definition:
RCPtr.h:870
ThePEG::Pointer::PtrTraits< RCPtr< T > >::reference
RCPtr< T >::reference reference
Template argument typedef.
Definition:
RCPtr.h:864
ThePEG::Pointer::PtrTraits< RCPtr< T > >::create
static pointer create()
Create an object and return a pointer to it.
Definition:
RCPtr.h:884
ThePEG::Pointer::PtrTraits< RCPtr< T > >::destroy
static void destroy(pointer)
Destroy the object pointed to.
Definition:
RCPtr.h:894
ThePEG::Pointer::PtrTraits< RCPtr< T > >::PtrCast
static pointer PtrCast(T *t)
Cast from a basic pointer.
Definition:
RCPtr.h:919
ThePEG::Pointer::PtrTraits< RCPtr< T > >::barePointer
static T * barePointer(const RCPtr< T > &p)
Return the bare pointer of the given pointer object.
Definition:
RCPtr.h:879
ThePEG::Pointer::PtrTraits< RCPtr< T > >::const_reference
RCPtr< T >::const_reference const_reference
Template argument typedef.
Definition:
RCPtr.h:866
ThePEG::Pointer::PtrTraits< RCPtr< T > >::create
static pointer create(const_reference t)
Create an copy of an object and return a pointer to it.
Definition:
RCPtr.h:889
ThePEG::Pointer::PtrTraits< RCPtr< T > >::transient_const_pointer
TransientConstRCPtr< T > transient_const_pointer
Template argument typedef.
Definition:
RCPtr.h:874
ThePEG::Pointer::PtrTraits< RCPtr< T > >::DynamicCast
static pointer DynamicCast(const UPtr &u)
Cast dynamically.
Definition:
RCPtr.h:900
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::const_reference
TransientConstRCPtr< T >::const_reference const_reference
Template argument typedef.
Definition:
RCPtr.h:1088
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::reference
TransientConstRCPtr< T >::reference reference
Template argument typedef.
Definition:
RCPtr.h:1086
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::ConstCast
static transient_const_pointer ConstCast(const UPtr &u)
Cast away constness.
Definition:
RCPtr.h:1124
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::const_pointer
ConstRCPtr< T > const_pointer
Template argument typedef.
Definition:
RCPtr.h:1092
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::DynamicCast
static transient_const_pointer DynamicCast(const UPtr &u)
Cast dynamically.
Definition:
RCPtr.h:1114
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::value_type
TransientConstRCPtr< T >::value_type value_type
Template argument typedef.
Definition:
RCPtr.h:1084
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::PtrCast
static transient_const_pointer PtrCast(const T *t)
Cast from a basic pointer.
Definition:
RCPtr.h:1133
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::transient_const_pointer
TransientConstRCPtr< T > transient_const_pointer
Template argument typedef.
Definition:
RCPtr.h:1096
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::barePointer
static const T * barePointer(const TransientConstRCPtr< T > &p)
Return the bare pointer of the given pointer object.
Definition:
RCPtr.h:1101
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::destroy
static void destroy(transient_const_pointer)
Destroy the object pointed to.
Definition:
RCPtr.h:1108
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::transient_pointer
TransientRCPtr< T > transient_pointer
Template argument typedef.
Definition:
RCPtr.h:1094
ThePEG::Pointer::PtrTraits< TransientConstRCPtr< T > >::pointer
RCPtr< T > pointer
Template argument typedef.
Definition:
RCPtr.h:1090
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::transient_const_pointer
TransientConstRCPtr< T > transient_const_pointer
Template argument typedef.
Definition:
RCPtr.h:1030
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::PtrCast
static transient_pointer PtrCast(T *t)
Cast from a basic pointer.
Definition:
RCPtr.h:1066
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::value_type
TransientRCPtr< T >::value_type value_type
Template argument typedef.
Definition:
RCPtr.h:1018
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::destroy
static void destroy(transient_pointer)
Destroy the object pointed to.
Definition:
RCPtr.h:1042
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::transient_pointer
TransientRCPtr< T > transient_pointer
Template argument typedef.
Definition:
RCPtr.h:1028
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::pointer
RCPtr< T > pointer
Template argument typedef.
Definition:
RCPtr.h:1024
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::barePointer
static T * barePointer(const TransientRCPtr< T > &p)
Return the bare pointer of the given pointer object.
Definition:
RCPtr.h:1035
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::ConstCast
static transient_pointer ConstCast(transient_const_pointer c)
Cast away constness.
Definition:
RCPtr.h:1057
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::const_reference
TransientRCPtr< T >::const_reference const_reference
Template argument typedef.
Definition:
RCPtr.h:1022
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::reference
TransientRCPtr< T >::reference reference
Template argument typedef.
Definition:
RCPtr.h:1020
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::const_pointer
ConstRCPtr< T > const_pointer
Template argument typedef.
Definition:
RCPtr.h:1026
ThePEG::Pointer::PtrTraits< TransientRCPtr< T > >::DynamicCast
static transient_pointer DynamicCast(const UPtr &u)
Cast dynamically.
Definition:
RCPtr.h:1048
ThePEG::Pointer::PtrTraits
The PtrTraits class is used everywhere in ThePEG to interface to the pointers which are handled.
Definition:
PtrTraits.h:39
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6