|
|
| stlab::copy_on_write< T >::copy_on_write () noexcept(std::is_nothrow_constructible_v< T >) |
| | Default constructs the wrapped value.
|
|
template<class U> |
| | stlab::copy_on_write< T >::copy_on_write (U &&x, disable_copy< U >=nullptr) |
| | Constructs a new instance by forwarding arguments to the wrapped value constructor.
|
|
template<class U, class V, class... Args> |
| | stlab::copy_on_write< T >::copy_on_write (U &&x, V &&y, Args &&... args) |
| | Constructs a new instance by forwarding multiple arguments to the wrapped value constructor.
|
|
| stlab::copy_on_write< T >::copy_on_write (const copy_on_write &x) noexcept |
| | Copy constructor that shares the underlying data with the source object.
|
|
| stlab::copy_on_write< T >::copy_on_write (copy_on_write &&x) noexcept |
| | Move constructor that takes ownership of the source object's data.
|
|
| stlab::copy_on_write< T >::~copy_on_write () |
| | Destructor.
|
|
auto | stlab::copy_on_write< T >::operator= (const copy_on_write &x) noexcept -> copy_on_write & |
| | Copy assignment operator that shares the underlying data with the source object.
|
|
auto | stlab::copy_on_write< T >::operator= (copy_on_write &&x) noexcept -> copy_on_write & |
| | Move assignment operator that takes ownership of the source object's data.
|
|
template<class U> |
| auto | stlab::copy_on_write< T >::operator= (U &&x) -> disable_copy_assign< U > |
| | Assigns a new value to the wrapped object, optimizing for in-place assignment when unique.
|