Spec-Zone.ru › C++

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).

Если ship < skip + max_depth равно false (то есть математический результат skip + max_depth переполняется), поведение не определено.

(до C++26)

Если ship < skip + max_depth равно false (то есть математический результат skip + max_depth переполняется):

  • Если реализация защищена дополнительными проверками, происходит нарушение контракта.
  • Если реализация не защищена дополнительными проверками, поведение не определено.
(начиная с C++26)

Во всех случаях alloc сохраняется в созданном объекте basic_stacktrace и используется для выделения памяти под записи трассировки стека.

Параметры

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

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

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

В противном случае возвращается пустой объект basic_stacktrace.

Пример

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/basic_stacktrace/current

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API