Пространства имён
Варианты
Действия

std::operator<<(std::basic_stacktrace)

Материал из cppreference.com
 
 
Библиотека диагностики
Обработка исключений
Сбои обработки исключений
(до C++17*)
(до C++17*)
(C++11)(до C++17*)    
(до C++17*)
Коды ошибок
Коды ошибок
Категории исключений
(ТС TM)
Поддержка системных ошибок
(C++11)
(C++11)
Утверждения
Трассировка стека
 
 
Определено в заголовочном файле <stacktrace>
template< class Allocator >
std::ostream& operator<<( std::ostream& os, const std::basic_stacktrace<Allocator>& st );
(начиная с C++23)

Вставляет описание st в выходной поток os. Эквивалентно return os << std::to_string(st);.

Содержание

[править] Параметры

os выходной поток
st basic_stacktrace, описание которого должно быть вставлено

[править] Возвращаемое значение

os.

[править] Исключения

Может генерировать исключения, определённые реализацией.

[править] Пример

#include <stacktrace>
#include <iostream>
 
int main()
{
    std::cout << "Трассировка стека, полученная в функции main:\n";
    std::cout << std::stacktrace::current() << '\n';
    []{
        std::cout << "Трассировка стека, полученная во вложенной лямбде:\n";
        std::cout << std::stacktrace::current() << '\n';
    }();
}

Возможный вывод:

Трассировка стека, полученная в функции main:
 0# 0x0000000000402E7B in ./prog.exe
 1# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
 2# 0x0000000000402CD9 in ./prog.exe
 
Трассировка стека, полученная во вложенной лямбде:
 0# 0x0000000000402DDA in ./prog.exe
 1# 0x0000000000402EB2 in ./prog.exe
 2# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
 3# 0x0000000000402CD9 in ./prog.exe

[править] Смотрите также

выполняет потоковый вывод класса stacktrace_entry
(шаблон функции) [править]