Namespaces
Variants
Views
Actions

std::formatter<std::basic_stacktrace>

From cppreference.com
 
 
 
 
Defined in header <stacktrace>
template< class Allocator >
struct formatter<std::basic_stacktrace<Allocator>>;
(since C++23)

The template specialization of std::formatter for std::basic_stacktrace<Allocator> allows users to convert a stacktrace object to string using formatting functions such as std::format.

No format specifier is allowed.

A stacktrace object s is formatted as if by copying std::to_string(s) to the output.

[edit] Example

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

Possible output:

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

[edit] See also

(C++20)
defines formatting rules for a given type
(class template) [edit]
(C++23)
prints to stdout or a file stream using formatted representation of the arguments
(function template) [edit]