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
类,允许用户使用 格式化函数 将路径名转换为其文本表示形式。此特化是 调试启用 的。
内容 |
[编辑] 格式规范
格式规范 path-format-spec
的语法为
fill-and-align (可选) width (可选) ? (可选) g (可选) |
|||||||||
fill-and-align
和 width
的含义与 标准格式规范 中相同。
?
选项用于将路径名格式化为 转义字符串。
g
选项用于指定路径名处于 通用格式表示 中。
[编辑] 成员函数
set_debug_format |
启用将路径名格式化为 转义字符串 (公共成员函数) |
parse |
按 path-format-spec 指定的解析格式说明符(公共成员函数) |
format |
按 path-format-spec 指定的写入格式化的输出(公共成员函数) |
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; |
||
将格式说明符解析为 path-format-spec
并将解析后的说明符存储在当前对象中。
返回指向 path-format-spec
结束位置的迭代器。
std::formatter<std::filesystem::path>::format
template< class FormatContext > auto format( const std::filesystem::path& p, FormatContext& ctx ) const |
||
令 s
为 p.generic<std::filesystem::path::value_type>()
(如果使用了 g
选项),否则为 p.native()
。按 path-format-spec
指定的将 s
写入 ctx.out()
中。
对于路径名的字符转码
- 如果
-
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
,则不执行任何转码。 - 否则,转码是实现定义的。
返回指向输出范围结束位置的迭代器。
[编辑] 注释
特性测试 宏 | 值 | Std | 特性 |
---|---|---|---|
__cpp_lib_format_path |
202403L | (C++26) | 对 std::filesystem::path 的格式化支持 |
[编辑] 示例
此部分尚未完善 原因: 没有示例 |
[编辑] 另请参见
(C++20) |
定义给定类型的格式化规则 (类模板) |