std::filesystem::operator/(std::filesystem::path)
friend path operator/( const path& lhs, const path& rhs ); | (начиная с C++17) |
Объединяет два компонента пути, используя предпочтительный разделитель каталогов, если это уместно (подробности см. в operator/=).
Фактически возвращает path(lhs) /= rhs.
Эта функция недоступна для обычного неквалифицированного или квалифицированного поиска и может быть найдена только с помощью поиска, зависящего от аргументов, если std::filesystem::path является ассоциированным классом аргументов. Это предотвращает нежелательные преобразования при наличии using namespace std::filesystem; директивы using.
Параметры
| lhs, rhs | - | пути для объединения |
Возвращаемое значение
Результат объединения путей.
Пример
#include <filesystem>
#include <iostream>
int main()
{
# if defined(_WIN32) // see e.g. stackoverflow.com/questions/142508
std::filesystem::path p = "C:";
std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p / "Users" / "batman" << '\n';
# else // __linux__ etc
std::filesystem::path p = "/home";
std::cout << "\"/home\" / \"tux\" / \".fonts\" == " << p / "tux" / ".fonts" << '\n';
# endif
}
Возможный вывод:
Windows specific output: "C:" / "Users" / "batman" == "C:Users\\batman" Linux etc specific output: "/home" / "tux" / ".fonts" == "/home/tux/.fonts"
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющих поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение согласно опубликованной редакции | Корректное поведение |
|---|---|---|---|
| LWG 3065 | C++17 | разрешалось объединять всё, что преобразуется в path, при наличии директивы using | сделана скрытой дружественной функцией |
См. также
| добавляет элементы к пути с разделителем каталогов (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/filesystem/path/operator_slash