std::formatter<std::basic_stacktrace>

来自cppreference.com
 
 
 
 
在标头 <stacktrace> 定义
template< class Allocator >
struct formatter<std::basic_stacktrace<Allocator>>;
(C++23 起)

std::formatter 针对 std::basic_stacktrace<Allocator> 的特化允许用户使用如 std::format 这样的格式化函数把栈踪迹对象转换为字符串。

不允许使用任何格式说明符。

如同通过把 std::to_string(s) 复制到输出来格式化栈踪迹对象 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 或文件缓冲区
(函数模板)