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
。
[编辑] 示例
本节不完整 原因:没有示例 |
[编辑] 另请参阅
创建一个新的 basic_stacktrace (公有成员函数) | |
[静态] |
构造一个新的 source_location ,对应于调用站点的地址( std::source_location 的公有静态成员函数) |