std::filesystem::operator/(std::filesystem::path)
friend path operator/( const path& lhs, const path& rhs ); | (since 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/w/cpp/filesystem/path/operator_slash