|
| 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.
|