std::filesystem::path:: make_preferred
| Member types | ||||||||||||||||||||||||||
| Member constants | ||||||||||||||||||||||||||
| Member functions | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Path decomposition | ||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||
|
path
&
make_preferred
(
)
;
|
(C++17以降) | |
パスのジェネリック形式ビュー内のすべてのディレクトリ区切り文字を、優先されるディレクトリ区切り文字に変換します。
例えば、Windowsでは \ が優先される区切り文字であるため、パス foo / bar は foo\bar に変換されます。
目次 |
パラメータ
(なし)
戻り値
* this
例外
実装定義の例外をスローする可能性があります。
例
Windowsは / をセパレータとして使用できますが、 \ を優先するため、 make_preferred はスラッシュをバックスラッシュに変換します。一方、POSIXではバックスラッシュは有効なファイル名文字であるため、 \ をセパレータとして使用しません — POSIX上のWindowsパスは実際には "a \\ b \\ c" という名前のファイルを参照します。このため、「セパレータ」は変換されません。
#include <filesystem> #include <iostream> int main() { std::filesystem::path windows_path("a\\b\\c"), posix_path("a/b/c"); std::cout << "Windows path: " << windows_path << " -> " << windows_path.make_preferred() << '\n' << "POSIX path: " << posix_path << " -> " << posix_path.make_preferred() << '\n'; }
出力:
// on Windows Windows path: "a\\b\\c" -> "a\\b\\c" POSIX path: "a/b/c" -> "a\\b\\c" // on POSIX Windows path: "a\\b\\c" -> "a\\b\\c" POSIX path: "a/b/c" -> "a/b/c"
関連項目
|
constexpr value_type
preferred_separator
[static]
|
ポータブルな
/
に加えて使用可能な代替ディレクトリセパレータ。Windowsでは、これはバックスラッシュ文字
\
です。POSIXでは、これはポータブルセパレータと同じフォワードスラッシュ
/
です。
(public static member constant) |