![]() |
Rosetta
2020.50
|
#include <deep_copy.hh>
Public Types | |
typedef utility::pointer::shared_ptr < T > | pointer_type |
Public Member Functions | |
constexpr | DeepCopyOP () noexcept |
constexpr | DeepCopyOP (std::nullptr_t const &null) noexcept |
DeepCopyOP (pointer_type const &val) | |
DeepCopyOP (T *val) | |
DeepCopyOP (DeepCopyOP const &r) noexcept | |
Copy constructor – This is what the effort is about. More... | |
DeepCopyOP (DeepCopyOP const &&r) noexcept | |
Move constructor. More... | |
~DeepCopyOP ()=default | |
DeepCopyOP & | operator= (DeepCopyOP const &r) |
Standard assignment operator, needed for implicit assignment operator of containing class. More... | |
DeepCopyOP & | operator= (DeepCopyOP &&r) |
Move assignment operator. More... | |
DeepCopyOP & | operator= (pointer_type const &val) |
Assignment from OP. More... | |
DeepCopyOP & | operator= (pointer_type &&val) |
Move assignement operator for OPs. More... | |
DeepCopyOP & | operator= (std::nullptr_t const &val) |
operator shared_ptr< typename std::remove_const< T >::type > () const | |
Conversion operator to allow a DeepCopyOP to be passed as a plain OP. More... | |
operator shared_ptr< typename std::add_const< T >::type > () const | |
Conversion operator which allows an OP -> COP change. More... | |
void | swap (DeepCopyOP &r) noexcept |
void | swap (pointer_type &r) noexcept |
T * | get () const noexcept |
T & | operator* () const noexcept |
T * | operator-> () const noexcept |
DeepCopyOP::pointer_type | get_op () const |
operator bool () const noexcept | |
bool | operator== (DeepCopyOP const &r) const |
bool | operator== (pointer_type const &val) const |
bool | operator== (std::nullptr_t const &null) const |
bool | operator!= (DeepCopyOP const &r) const |
bool | operator!= (pointer_type const &val) const |
bool | operator!= (std::nullptr_t const &null) const |
Private Attributes | |
pointer_type | val_ |
typedef utility::pointer::shared_ptr< T > utility::pointer::DeepCopyOP< T >::pointer_type |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
|
inlineexplicit |
|
inlinenoexcept |
Copy constructor – This is what the effort is about.
|
inlinenoexcept |
Move constructor.
Because the rvalue is disappearing, there's no need to actually make a deep copy – there's no reference which should be sharing this value
|
default |
|
inlinenoexcept |
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
References utility::pointer::DeepCopyOP< T >::val_.
Referenced by utility::pointer::dynamic_pointer_cast().
|
inlineexplicitnoexcept |
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
Conversion operator which allows an OP -> COP change.
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
Conversion operator to allow a DeepCopyOP to be passed as a plain OP.
While this actually won't allow you to convert a COP to an OP (you'll get a obtuse-but-interpretable compiler error if you try) the remove_const is needed to avoid an unconditional compiler error for just using DeepCopyOP with a COP
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
References utility::pointer::DeepCopyOP< T >::val_.
|
inlinenoexcept |
References utility::pointer::DeepCopyOP< T >::val_.
|
inlinenoexcept |
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
Standard assignment operator, needed for implicit assignment operator of containing class.
References numeric::interpolation::spline::deep_copy(), and utility::pointer::DeepCopyOP< T >::val_.
|
inline |
Move assignment operator.
The RHS is disappearing, so we can steal the value
References swap(), and utility::pointer::DeepCopyOP< T >::val_.
|
inline |
Assignment from OP.
This is what's used to manually set the value within the class. We don't need to clone.
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
Move assignement operator for OPs.
References swap(), and utility::pointer::DeepCopyOP< T >::val_.
|
inline |
We need to overload the nullptr_t otherwise we get compiler issues
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
References utility::pointer::DeepCopyOP< T >::val_.
|
inline |
References utility::pointer::DeepCopyOP< T >::val_.
|
inlinenoexcept |
References swap(), and utility::pointer::DeepCopyOP< T >::val_.
|
inlinenoexcept |
References swap(), and utility::pointer::DeepCopyOP< T >::val_.
|
private |
Referenced by utility::pointer::DeepCopyOP< T >::get(), utility::pointer::DeepCopyOP< T >::get_op(), utility::pointer::DeepCopyOP< T >::operator bool(), utility::pointer::DeepCopyOP< T >::operator shared_ptr< typename std::add_const< T >::type >(), utility::pointer::DeepCopyOP< T >::operator shared_ptr< typename std::remove_const< T >::type >(), utility::pointer::DeepCopyOP< T >::operator!=(), utility::pointer::DeepCopyOP< T >::operator*(), utility::pointer::DeepCopyOP< T >::operator->(), utility::pointer::DeepCopyOP< T >::operator=(), utility::pointer::DeepCopyOP< T >::operator==(), and utility::pointer::DeepCopyOP< T >::swap().