std::formatter<std::filesystem::path>
来自cppreference.com
< cpp | filesystem | path
在标头 <filesystem> 定义
|
||
template< class CharT > struct formatter<std::filesystem::path, CharT>; |
(C++26 起) | |
std::formatter 针对 std::filesystem::path 类的模板特化允许用户使用格式化函数把路径名转换为其文本表示。这项特化是启用调试的。
格式说明
格式说明 路径格式说明 的语法是:
填充和对齐 (可选) 宽度 (可选) ? (可选) g (可选)
|
|||||||||
填充和对齐 与 宽度 具有与标准格式说明中相同的含义。
?
选项用于把路径名格式化为经转义字符串。
g
选项用于指定路径名具有通用格式表示。
Member functions
set_debug_format |
启用把路径名格式化为经转义字符串 (公开成员函数) |
parse |
根据 路径格式说明 解析格式说明符 (公开成员函数) |
format |
根据 路径格式说明 写入格式化输出 (公开成员函数) |
std::formatter<std::filesystem::path>::set_debug_format
constexpr void set_debug_format(); |
||
允许当前对象把路径名格式化为经转义字符串。
std::formatter<std::filesystem::path>::parse
constexpr auto parse( std::basic_format_parse_context<CharT>& ctx ) -> std::basic_format_parse_context<CharT>::iterator; |
||
按照 路径格式说明 解析各个格式说明符,并将解析到的说明符存储到当前对象中。
返回 路径格式说明 的尾后迭代器。
std::formatter<std::filesystem::path>::format
template< class FormatContext > auto format( const std::filesystem::path& p, FormatContext& ctx ) const |
||
令 s 在使用 g
选项时为 p.generic<std::filesystem::path::value_type>(),否则为 p.native()。根据 路径格式说明 的规定将 s 写入 ctx.out()。
对于路径名的字符转码:
- 以下情况下,将路径名从宽字符串的本机编码转码为 UTF-8,其中将最大非良构子序列的部分替换为
U+FFFD
REPLACEMENT CHARACTER:- std::is_same_v<CharT, char> 为 true,
- std::is_same_v<typename path::value_type, wchar_t> 为 true,并且
- 普通字面量编码为 UTF-8。
- 否则,当 std::is_same_v<typename path::value_type, CharT> 为 true 时不进行转码。
- 否则,转码由实现定义。
返回输出范围的尾后迭代器。
注解
功能特性测试宏 | 值 | 标准 | 功能特性 |
---|---|---|---|
__cpp_lib_format_path |
202403L | (C++26) | std::filesystem::path 的格式化支持
|
示例
本节未完成 原因:暂无示例 |
参阅
(C++20) |
定义针对给定类型的格式化规则 (类模板) |