Namespaces
Variants

std:: formatter <std::basic_stacktrace>

From cppreference.net
Определено в заголовочном файле <stacktrace>
template < class Allocator >
struct formatter < std:: basic_stacktrace < Allocator >> ;
(начиная с C++23)

Специализация шаблона std::formatter для std::basic_stacktrace<Allocator> позволяет пользователям преобразовывать объект трассировки стека в строку с использованием функций форматирования таких как std::format .

Спецификатор формата не допускается.

Объект трассировки стека s форматируется так, как если бы произошло копирование std::to_string ( s ) в вывод.

Пример

#include <format>
#include <iostream>
#include <stacktrace>
int main()
{
    auto trace = std::stacktrace::current();
    std::cout << std::format("{}\n", trace);
}

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

 0# 0x0000000000402D97 in ./prog.exe
 1# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
 2# 0x0000000000402CA9 in ./prog.exe

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

(C++20)
определяет правила форматирования для заданного типа
(шаблон класса)
(C++23)
выводит в stdout или файловый поток, используя форматированное представление аргументов
(шаблон функции)