object::operator=
Assignment operators.
Synopsis
object&
operator=(
object const& other); (1)
object&
operator=(
object&& other); (2)
object&
operator=(
std::initializer_list< std::pair< string_view, value_ref > > init); (3)
Description
Replaces the contents of this object.
-
(1) replaces with the copies of the elements of
other. -
(2) takes ownership of
other's element storage if*storage() == *other.storage(); otherwise equivalent to (1). -
(3) replaces with the elements of
init.
Complexity
-
(1) linear in
size() + other.size(). -
(2) constant if
*storage() == *other.storage(); otherwise linear insize() + other.size(). -
(3) average case linear in
size() + init.size(), worst case quadratic ininit.size().
Exception Safety
-
(1), (3) strong guarantee.
-
(2) no-throw guarantee if
*storage() == *other.storage(); otherwise strong guarantee.
Calls to memory_resource::allocate may throw.
Complexity
Parameters
| Name | Description |
|---|---|
|
Another object. |
|
The initializer list to copy. |