web-dev-qa-db-ja.com

std :: filesystem :: u8pathがc ++ 20で廃止されたのはなぜですか?

C++ 17で導入されたstd::filesystem::u8pathはc ++ 20で廃止されるようです。

この選択の理由は何ですか? c ++ 17では何を使用すればよいですか? c ++ 20では何を使用すればよいですか?

16
Guillaume Gris

C++ 20機能_char8_t_の存在のおかげで、これは機能します。

_path p(u8"A/utf8/path");
_

_u8path_は、UTF-8文字列とナロー文字列の違いを検出できるようにするために存在しました。しかし、C++ 20はそのための実際のtypeを提供してくれるので、もう必要ありません。


C++ 17では何を使用すればよいですか?

_u8path_を使用します。廃止は削除またはアクセス不可能を意味しません。それは単に最終的な削除の対象になることを意味します。

現在、C++ 20では、_u8_が_char8_t_文字列を作成するため、C++ 20でu8path(u8"A/UTF8/String")をコンパイルできません。しかしC++ 20 _u8path_文字列を受け取る_char8_t_への変更を取得している可能性があります

14
Nicol Bolas