std::format是C++17中引入的用于格式化字符串的新特性,它是一個用于替代printf和stringstream的現代化字符串格式化工具。std::format使用類似于Python的字符串格式化語法,并提供了更強大和安全的功能。
std::format的用法包括:
std::string result = std::format("Hello, {}!", "World");
std::string result = std::format("The value is: {:10.2f}", 3.14159);
std::string result = std::format("The result is: {} and {}", 123, "abc");
std::string result = std::format("The result is: {value}", std::arg("value", 123));
struct MyStruct {
int value;
};
template<>
struct std::formatter<MyStruct> {
auto format(const MyStruct& s, std::format_context& ctx) {
return std::format_to(ctx.out(), "MyStruct({})", s.value);
}
};
MyStruct s{123};
std::string result = std::format("The value is: {}", s);
總的來說,std::format提供了更靈活和強大的字符串格式化功能,可以方便地處理各種復雜的格式化需求。