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(conststd::locale& loc, std::string_view fmt, std::format_args args ); | (3) | (C++20 起) |
std::wstring vformat(conststd::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>inlinevoid println(conststd::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