“cpp/utility/basic stacktrace/current”的版本间的差异
来自cppreference.com
< cpp | utility | basic stacktrace
(+) |
小 |
||
第19行: | 第19行: | ||
令 {{c|s[i]}} (0 ≤ {{tt|''i''}} < {{tt|''n''}}) 代表当前执行线程中当前求值的第 {{tt|''i''+1}} 个栈踪条目,其中 {{tt|''n''}} 为栈踪中的栈踪条目数。 | 令 {{c|s[i]}} (0 ≤ {{tt|''i''}} < {{tt|''n''}}) 代表当前执行线程中当前求值的第 {{tt|''i''+1}} 个栈踪条目,其中 {{tt|''n''}} 为栈踪中的栈踪条目数。 | ||
− | @1@ 试图创建由 {{c|s[0]}}、 {{c|s[1]}} …… {{c|s[n - 1]}} 组成的 {{tt|basic_stacktrace}} 。 | + | @1@ 试图创建由 {{c|s[0]}}、 {{c|s[1]}} …… {{c|s[n - 1]}} 组成的 {{tt|basic_stacktrace}} 。 |
@2@ 试图创建由 {{c|s[m]}}、 {{c|s[m + 1]}} …… {{c|s[n - 1]}} 组成的 {{tt|basic_stacktrace}} ,其中 {{tt|''m''}} 为 {{tt|min(skip, ''n'')}} 。 | @2@ 试图创建由 {{c|s[m]}}、 {{c|s[m + 1]}} …… {{c|s[n - 1]}} 组成的 {{tt|basic_stacktrace}} ,其中 {{tt|''m''}} 为 {{tt|min(skip, ''n'')}} 。 |
2021年5月4日 (二) 06:11的版本
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 的公开静态成员函数)
|