std::vformat
来自cppreference.com
在标头 <format> 定义
|
||
std::string vformat( std::string_view fmt, std::format_args args ); |
(1) | (C++20 起) |
std::wstring vformat( std::wstring_view fmt, std::wformat_args args ); |
(2) | (C++20 起) |
std::string vformat( const std::locale& loc, std::string_view fmt, std::format_args args ); |
(3) | (C++20 起) |
std::wstring vformat( const std::locale& loc, std::wstring_view fmt, std::wformat_args args ); |
(4) | (C++20 起) |
按照格式字符串 fmt 格式化 args 所持有的实参,并返回作为字符串的结果。loc 若存在,则用于本地环境特定的格式化。
参数
fmt | - |
每个替换域拥有如下格式:
1) 没有格式说明的替换域
2) 有格式说明的替换域
| ||||||||||||||||||||||||||||||||||||||||||||||
args... | - | 要格式化的实参 | ||||||||||||||||||||||||||||||||||||||||||||||
loc | - | 用于本地环境特定格式化的 std::locale |
返回值
保有格式化结果的字符串对象。
异常
若 fmt 对于提供的实参不是合法的格式字符串则抛出 std::format_error,在分配失败时抛出 std::bad_alloc。并传播格式化器或迭代器操作所抛的任何异常。
示例
运行此代码
#include <format> #include <iostream> template<typename... Args> inline void println(const std::format_string<Args...> fmt, Args&&... args) { std::cout << std::vformat(fmt.get(), std::make_format_args(args...)) << '\n'; } int main() { println("{}{} {}{}", "Hello", ',', "C++", -1 + 2 * 3 * 4); }
输出:
Hello, C++23