The following code example is taken from the book
C++23 - The Complete Guide
by Nicolai M. Josuttis,
Leanpub, 2026
The code is licensed under a
Creative Commons Attribution 4.0 International License.
// raw code
#include <print>
#include <string>
#include <vector>
#include <format>
struct MyInt
{
int value;
MyInt(int i) : value{i} {}
};
template<>
struct std::formatter<MyInt> : std::formatter<int>
{
auto format(const MyInt& obj, auto& ctx) const {
return std::formatter<int>::format(obj.value, ctx); // format value
}
};
int main()
{
MyInt mi = 42;
std::println("MyInt: {}", mi); // prints: 42
std::println("MyInt vec: {}", std::vector{mi}); // prints: [42]
}