std::basic_stacktrace<Allocator>:: basic_stacktrace
From zh.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
。
目录参数
异常
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))之后,原本指向 示例
参见
|