std::basic_stacktrace<Allocator>::operator=
basic_stacktrace& operator=(const basic_stacktrace& other ); | (1) | (начиная с C++23) |
basic_stacktrace& operator=( basic_stacktrace&& other ) noexcept(/* смотрите ниже */); | (2) | (начиная с C++23) |
Заменяет содержимое basic_stacktrace
.
other
. Если равно false и аллокатор *this и other
не равны, *this не может стать владельцем принадлежащей other
памяти и должен присваивать каждую запись отдельно, выделяя дополнительную память, используя свой собственный аллокатор по мере необходимости.В любом случае записи трассировки стека, изначально принадлежащие *this, могут быть либо уничтожены, либо заменены поэлементным присваиванием.
*this при сбое выделения может остаться пустым, если реализация усиливает спецификацию исключений.
Содержание |
[править]Параметры
other | — | другой basic_stacktrace для использования в качестве источника |
[править]Возвращаемое значение
*this
[править]Сложность
[править]Исключения
||std::allocator_traits<Allocator>::is_always_equal::value)
[править]Примечание
После перемещения присваиванием контейнера (перегрузка (2)), если только поэлементное присваивание перемещением не принудительно выполняется несовместимыми аллокаторами, ссылки, указатели и итераторы (кроме конечного итератора) на other
остаются действительными, но ссылаются на элементы которые сейчас находятся в *this. Текущий стандарт делает эту гарантию с помощью общего заявления в [container.reqmts]/67, и более прямая гарантия находится на рассмотрении через LWG проблема 2321.
[править]Пример
Этот раздел не завершён Причина: нет примера |
[править]Смотрите также
создаёт новый basic_stacktrace (public функция-элемент) |