Namespaces
Variants

std::basic_stacktrace<Allocator>:: basic_stacktrace

From cppreference.net
basic_stacktrace ( ) noexcept ( /* см. ниже */ ) ;
(1) (начиная с C++23)
explicit basic_stacktrace ( const allocator_type & alloc ) noexcept ;
(2) (начиная с C++23)
basic_stacktrace ( const basic_stacktrace & other ) ;
(3) (начиная с C++23)
basic_stacktrace ( basic_stacktrace && other ) noexcept ;
(4) (начиная с C++23)
basic_stacktrace ( const basic_stacktrace & other,
const allocator_type & alloc ) ;
(5) (начиная с C++23)
basic_stacktrace ( basic_stacktrace && other, const allocator_type & alloc ) ;
(6) (начиная с C++23)

Создает пустой basic_stacktrace , или копирует/перемещает из other .

1) Конструктор по умолчанию. Создает пустой basic_stacktrace с аллокатором, созданным конструктором по умолчанию.
2) Создает пустой basic_stacktrace используя alloc в качестве аллокатора.
3) Конструктор копирования. Создает basic_stacktrace с копией содержимого other , аллокатор получается как при вызове std:: allocator_traits < allocator_type > :: select_on_container_copy_construction ( other. get_allocator ( ) ) .
4) Конструктор перемещения. Создает basic_stacktrace с содержимым other используя семантику перемещения. Аллокатор перемещается из аллокатора other . После конструирования other остается в валидном, но неопределенном состоянии.
5) То же, что и конструктор копирования, за исключением того, что alloc используется в качестве аллокатора.
6) Ведет себя так же, как конструктор перемещения, если alloc == other. get_allocator ( ) . В противном случае выделяет память с помощью alloc и выполняет поэлементное перемещение. alloc используется в качестве аллокатора.

(3,5,6) может выбросить исключение или создать пустой basic_stacktrace при ошибке выделения памяти.

Содержание

Параметры

alloc - аллокатор для использования во всех выделениях памяти конструируемого basic_stacktrace
other - другой basic_stacktrace для копирования/перемещения

Исключения

1)
noexcept спецификация:
noexcept ( std:: is_nothrow_default_constructible_v < allocator_type > )
3,5,6) Может распространять исключение, вызванное при неудачном выделении памяти.

Сложность

1,2) Константа.
3) Линейный по размеру other .
4) Константа.
5) Линейно по размеру other .
6) Линейный по размеру other если alloc ! = other. get_allocator ( ) , иначе константный.

Примечания

После перемещающего конструирования контейнера (перегрузка ( 4 ) ), ссылки, указатели и итераторы (кроме конечного итератора) на other остаются действительными, но ссылаются на элементы, которые теперь находятся в * this . Текущий стандарт обеспечивает эту гарантию с помощью общего положения в [container.reqmts]/67 , и более прямая гарантия рассматривается через LWG issue 2321 .

Пример

Смотрите также

присваивает значение basic_stacktrace
(публичная функция-член)
[static]
получает текущий стек вызовов или его указанную часть
(публичная статическая функция-член)