std::basic_stacktrace<Allocator>::basic_stacktrace
来自cppreference.com
< cpp | utility | basic stacktrace
诊断库
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::basic_stacktrace
| 成员函数 | ||||
|
basic_stacktrace::basic_stacktrace
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| 迭代器 | ||||
|
(C++23)(C++23)
|
||||
|
(C++23)(C++23)
|
||||
|
(C++23)(C++23)
|
||||
|
(C++23)(C++23)
|
||||
| 容量 | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| 元素访问 | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| 修改器 | ||||
|
(C++23)
|
||||
| 非成员函数 | ||||
|
(C++23)(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| 辅助类 | ||||
|
(C++23)
|
|
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.requirements.general]/12 中的总括陈述作出此保证,而 LWG 问题 2321 正在考虑更严格的保证。
示例
| 本节未完成 原因:暂无示例 |
参阅
赋值给 basic_stacktrace (公开成员函数) |
|
|
[静态]
|
获得当前栈踪或其给定部分 (公开静态成员函数) |