Namespaces
Variants

std::basic_stacktrace<Allocator>:: basic_stacktrace

From cppreference.net
basic_stacktrace ( ) noexcept ( /* see below */ ) ;
(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) 使用 alloc 作为分配器构造一个空的 basic_stacktrace
3) 复制构造函数。构造一个内容与 other 相同的 basic_stacktrace ,其分配器通过调用 std:: allocator_traits < allocator_type > :: select_on_container_copy_construction ( other. get_allocator ( ) ) 获得。
4) 移动构造函数。使用移动语义构造一个包含 other 内容的 basic_stacktrace 。分配器从 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) alloc ! = other. get_allocator ( ) 时,与 other 的大小成线性关系,否则为常数时间复杂度。

注释

在容器移动构造(重载 ( 4 ) )之后,指向 other 的引用、指针和迭代器(除尾后迭代器外)保持有效,但会引用现在位于 * this 中的元素。当前标准通过 [container.reqmts]/67 中的总体说明提供此保证,同时正在通过 LWG issue 2321 考虑更直接的保证。

示例

参见

赋值给 basic_stacktrace
(公开成员函数)
[static]
获取当前堆栈轨迹或其指定部分
(公开静态成员函数)