std::basic_stacktrace<Allocator>::basic_stacktrace
Материал из cppreference.com
<tbody>
</tbody>
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 проблема 2321.
Пример
| Этот раздел не завершён Причина: нет примера |
Смотрите также
присваивает классу basic_stacktrace (public функция-элемент) | |
[static] |
получает текущую трассировку стека или её заданную часть (public static функция-элемент) |