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 не использует \ в качестве разделителя, поскольку обратные слеши являются допустимыми символами имен файлов — путь Windows в POSIX фактически ссылается на файл с именем "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 это та же прямая косая черта
/
, что и портируемый разделитель
(публичная статическая константа-член) |