std::basic_stacktrace<Allocator>::current
来自cppreference.com
< cpp | utility | basic stacktrace
static basic_stacktrace current( const allocator_type& alloc = allocator_type() ) noexcept; |
(1) | (C++23 起) |
static basic_stacktrace current( size_type skip, const allocator_type& alloc = allocator_type() ) noexcept; |
(2) | (C++23 起) |
static basic_stacktrace current( size_type skip, size_type max_depth, const allocator_type& alloc = |
(3) | (C++23 起) |
令 s[i] (0 ≤ i
< n
) 代表当前执行线程中当前求值的第 i+1
个栈踪条目,其中 n
为栈踪中的栈踪条目数。
1) 试图创建由 s[0]、 s[1] …… s[n - 1] 组成的
basic_stacktrace
。2) 试图创建由 s[m]、 s[m + 1] …… s[n - 1] 组成的
basic_stacktrace
,其中 m
为 min(skip, n)
。3) 试图创建由 s[m]、 s[m + 1] …… s[o - 1] 组成的
basic_stacktrace
,其中 m
为 min(skip, n)
而 o
为 min(skip + max_depth, n)
。若 skip + max_depth < skip (即 skip + max_depth 的数学结果上溢)则行为未定义。所有情况下,存储 alloc
到创建的 basic_stacktrace
中并用它分配栈踪条目的存储。
参数
alloc | - | 用于构造的 basic_stacktrace 的所有内存分配的分配器
|
skip | - | 要跳过的栈踪条目数 |
max_depth | - | 栈踪条目的最大深度 |
返回值
若分配成功则为如上描述的 basic_stacktrace
。
否则为空的 basic_stacktrace
。
示例
本节未完成 原因:暂无示例 |
参阅
(C++23) |
创建新的 basic_stacktrace (公开成员函数) |
[静态] |
构造对应调用点位置的新 source_location ( std::source_location 的公开静态成员函数) |