std::any::operator=
any& operator=( const any& rhs ); | (1) | (since C++17) |
any& operator=( any&& rhs ) noexcept; | (2) | (since C++17) |
template< typename ValueType >
any& operator=( ValueType&& rhs );
| (3) | (since C++17) |
Присваивает содержимое сохраненному значению.
1) Присваивает, копируя состояние
rhs, как если бы посредством any(rhs).swap(*this).
2) Присваивает, перемещая состояние
rhs, как если бы посредством any(std::move(rhs)).swap(*this). rhs остается в допустимом, но не определенном состоянии после присвоения.
3) Присваивает тип и значение
rhs, как если бы посредством any(std::forward<ValueType>(rhs)).swap(*this). Этот перегруз участвует в разрешении перегрузки только если std::decay_t<ValueType> не является тем же типом, что и any, и std::is_copy_constructible_v<std::decay_t<ValueType>> является true.Параметры шаблона
| ValueType | - | тип содержащего значения |
| Требования к типу | ||
-std::decay_t<ValueType> должно удовлетворять требованиям CopyConstructible. |
||
Параметры
| rhs | - | объект, содержащее значение которого необходимо присвоить |
Значение результата
*this
Исключения
1,3) Бросает
std::bad_alloc или любое исключение, брошенное конструктором содержащего типа. Если брошено исключение, эффектов нет (сильная гарантия исключений).Пример
См. также
создаёт объект any (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/any/operator%3D