std::basic_stacktrace<Allocator>::current
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 (общедоступный член-функция) |
|
|
[статический] | создаёт новый source_location, соответствующий месту вызова (общедоступная статическая член-функция std::source_location) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/basic_stacktrace/current