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)
引数の フォーマット済み 表現を使用して 標準出力 またはファイルストリームに出力する
(関数テンプレート)