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

    -> FormatContext::iterator;

s 在使用 g 选项时为 p.generic<std::filesystem::path::value_type>(),否则为 p.native()。根据 路径格式说明 的规定将 s 写入 ctx.out()

对于路径名的字符转码:

  • 以下情况下,将路径名从宽字符串的本机编码转码为 UTF-8,其中将最大非良构子序列的部分替换为 U+FFFD REPLACEMENT CHARACTER:
  • 否则,当 std::is_same_v<typename path::value_type, CharT>true 时不进行转码。
  • 否则,转码由实现定义。

返回输出范围的尾后迭代器。

注解

功能特性测试 标准 功能特性
__cpp_lib_format_path 202403L (C++26) std::filesystem::path 的格式化支持

示例

参阅

(C++20)
定义针对给定类型的格式化规则
(类模板)