std::operator<<(std::basic_stacktrace)
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <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
Смотрите также
(C++23) |
выполняет потоковый вывод класса stacktrace_entry (шаблон функции) |