“cpp/utility/basic stacktrace/current”的版本间的差异

来自cppreference.com
(+)
 
第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}} 。 consisting of.
+
@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 =

                                     allocator_type() ) noexcept;
(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 ,其中 mmin(skip, n)
3) 试图创建由 s[m]s[m + 1] …… s[o - 1] 组成的 basic_stacktrace ,其中 mmin(skip, n)omin(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 的公开静态成员函数) [编辑]