Namespaces
Variants

std::basic_stacktrace<Allocator>:: current

From 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 ] (0 ≤ i < n ) обозначает ( i +1 )-ю запись трассировки стека в трассировке текущего выполнения в текущем потоке исполнения, где 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 и используется для выделения памяти для записей stacktrace.

Содержание

Параметры

alloc - аллокатор для использования во всех выделениях памяти конструируемого basic_stacktrace
skip - количество пропускаемых записей трассировки стека
max_depth - максимальная глубина записей трассировки стека

Возвращаемое значение

Если выделение памяти завершилось успешно, basic_stacktrace описанный выше.

В противном случае, пустой basic_stacktrace .

Пример

Смотрите также

создает новый basic_stacktrace
(публичная функция-член)
[static]
создает новый source_location соответствующий местоположению точки вызова
(публичная статическая функция-член std::source_location )