std:: formatter <std::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
|
||
g
オプションが使用されている場合、
s
を
p.
generic
<
std
::
filesystem
::
path
::
value_type
>
(
)
とし、それ以外の場合は
p.
native
(
)
とする。
s
を
path-format-spec
で指定された通りに
ctx.
out
(
)
に書き込む。
パス名の文字変換について:
-
以下の条件がすべて満たされる場合、パス名はワイド文字列のネイティブエンコーディングからUTF-8に変換され、不正なサブシーケンスの最大部分は
U+FFFDREPLACEMENT 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)
|
指定された型のフォーマット規則を定義する
(クラステンプレート) |