#include <i_shared_ptr.hh>
|
| template<typename U , typename = std::enable_if_t<std::is_convertible_v<U *, T *>>> |
| | i_shared_ptr (const std::shared_ptr< U > &ptr) |
| |
| template<typename U , typename std::enable_if<!std::is_same< T, U >::value, int >::type = 0> |
| | i_shared_ptr (const i_shared_ptr< U > &other) |
| |
| | i_shared_ptr (const std::shared_ptr< std::remove_const_t< T > > &other) |
| |
| template<typename U > |
| | i_shared_ptr (i_shared_ptr< U > &&other, typename enable_if_abstract< U >::type *=nullptr) |
| |
| | i_shared_ptr (std::shared_ptr< T > &&other) |
| |
| template<typename First , typename... Rest, typename = std::enable_if_t< !std::is_same_v<std::decay_t<First>, i_shared_ptr<T>> && !is_exact_std_shared_ptr<std::decay_t<First>>::value >> |
| | i_shared_ptr (First &&first, Rest &&... rest) |
| |
| | i_shared_ptr (T *other) |
| |
| template<typename X = T, typename = std::enable_if_t<std::is_base_of_v< VolumeBuilders::_internals_::IVolumeBuilder, X>>> |
| | operator G4VSolid * () |
| |
| template<typename X = T, typename = std::enable_if_t<std::is_base_of_v< VolumeBuilders::_internals_::IVolumeBuilder, X>>> |
| | operator G4LogicalVolume * () |
| |
| template<typename X = T, typename = std::enable_if_t<std::is_base_of_v< VolumeBuilders::_internals_::IVolumeBuilder, X>>> |
| | operator G4VPhysicalVolume * () |
| |
| template<typename X = T, typename = std::enable_if_t<std::is_base_of_v< VolumeBuilders::_internals_::IVolumeBuilder, X>>> |
| | operator G4Transform3D () const |
| |
template<typename T>
class DLG4::VolumeBuilders::_internals_::i_shared_ptr< T >
Definition at line 36 of file i_shared_ptr.hh.
◆ i_shared_ptr() [1/7]
template<typename T >
template<typename U , typename = std::enable_if_t<std::is_convertible_v<U *, T *>>>
◆ i_shared_ptr() [2/7]
template<typename T >
template<typename U , typename std::enable_if<!std::is_same< T, U >::value, int >::type = 0>
Template constructor from i_shared_ptr where U can construct T.
Definition at line 52 of file i_shared_ptr.hh.
52 : std::shared_ptr<T>(other) {
53 }
◆ i_shared_ptr() [3/7]
template<typename T >
| i_shared_ptr |
( |
const std::shared_ptr< std::remove_const_t< T > > & |
other | ) |
|
|
inline |
◆ i_shared_ptr() [4/7]
template<typename T >
template<typename U >
Definition at line 68 of file i_shared_ptr.hh.
70 : std::shared_ptr<T>(std::move(other)) {
71 }
◆ i_shared_ptr() [5/7]
Explicit constructor from std::shared_ptr<T> (move)
Definition at line 79 of file i_shared_ptr.hh.
79 : std::shared_ptr<T>(std::move(other)) {
80 }
◆ i_shared_ptr() [6/7]
template<typename T >
template<typename First , typename... Rest, typename = std::enable_if_t< !std::is_same_v<std::decay_t<First>, i_shared_ptr<T>> && !is_exact_std_shared_ptr<std::decay_t<First>>::value >>
Definition at line 106 of file i_shared_ptr.hh.
107 : std::shared_ptr<T>(new T(std::forward<First>(first), std::forward<Rest>(rest)...)) {
108 }
◆ i_shared_ptr() [7/7]
Implicit constructor from raw pointer (danger: takes ownership)
Definition at line 112 of file i_shared_ptr.hh.
112 : std::shared_ptr<T>(other) {
113 }
◆ operator G4LogicalVolume *()
template<typename T >
template<typename X = T, typename = std::enable_if_t<std::is_base_of_v< VolumeBuilders::_internals_::IVolumeBuilder, X>>>
| operator G4LogicalVolume * |
( |
| ) |
|
|
inline |
Definition at line 125 of file i_shared_ptr.hh.
125 {
126 auto other = static_cast<VolumeBuilders::_internals_::IVolumeBuilder *>(this->get());
127 return other->GetLogicalVolume();
128 }
◆ operator G4Transform3D()
template<typename T >
template<typename X = T, typename = std::enable_if_t<std::is_base_of_v< VolumeBuilders::_internals_::IVolumeBuilder, X>>>
| operator G4Transform3D |
( |
| ) |
const |
|
inline |
Definition at line 141 of file i_shared_ptr.hh.
141 {
142 static_assert(std::is_base_of_v<VolumeBuilders::_internals_::IVolumeBuilder, X>,
143 "T must derive from IVolumeBuilder");
144 auto other = static_cast<const VolumeBuilders::_internals_::IVolumeBuilder *>(this->get());
145 return other->GetPhysTransform();
146 }
◆ operator G4VPhysicalVolume *()
template<typename T >
template<typename X = T, typename = std::enable_if_t<std::is_base_of_v< VolumeBuilders::_internals_::IVolumeBuilder, X>>>
| operator G4VPhysicalVolume * |
( |
| ) |
|
|
inline |
Definition at line 133 of file i_shared_ptr.hh.
133 {
134 auto other = static_cast<VolumeBuilders::_internals_::IVolumeBuilder *>(this->get());
135 return other->GetPlacement();
136 }
◆ operator G4VSolid *()
template<typename T >
template<typename X = T, typename = std::enable_if_t<std::is_base_of_v< VolumeBuilders::_internals_::IVolumeBuilder, X>>>
Definition at line 117 of file i_shared_ptr.hh.
117 {
118 auto other = static_cast<VolumeBuilders::_internals_::IVolumeBuilder *>(this->get());
119 return other->GetFinalSolid();
120 }
The documentation for this class was generated from the following file: