std::basic_stacktrace<Allocator>:: basic_stacktrace
From cppreference.net
<
cpp
|
utility
|
basic stacktrace
|
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]
|
获取当前堆栈轨迹或其指定部分
(公开静态成员函数) |