Namespaces
Variants

std::basic_stacktrace<Allocator>:: current

From ja.cppreference.net
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 ] を、現在の実行スレッドにおける現在の評価のスタックトレース内の( i +1 )番目のスタックトレースエントリとします(0 ≤ i < n )。ここで n はスタックエントリ内のスタックトレースエントリの総数です。

1) basic_stacktraceを生成しようと試みます。生成されるスタックトレースは s [ 0 ] 、 s [ 1 ] 、...、 s [ n - 1 ] で構成されます。
2) basic_stacktraceを作成しようと試みる。これは s [ m ] 、 s [ m + 1 ] 、...、 s [ n - 1 ] から構成され、ここで m は min(skip, n ) である。
3) basic_stacktraceを生成しようと試みる。これは s [ m ] 、 s [ m + 1 ] 、...、 s [ o - 1 ] から構成される。ここで 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 を作成する
(公開メンバ関数)
[static]
呼び出し元の位置に対応する新しい source_location を構築する
( std::source_location の公開静的メンバ関数)