◐ Shell
clean mode source ↗

std::basic_stacktrace<Allocator>::current — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

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 и используется для выделения хранилища для записей трассировки стека.

Параметры

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

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

Если выделение прошло успешно, описанный выше basic_stacktrace.

Иначе пустой basic_stacktrace.

Пример

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

создаёт новый basic_stacktrace
(public функция-элемент) [править]
создаёт новый source_location, соответствующий местоположению места вызова
(public static функция-элемент std::stacktrace_entry) [править]