Namespaces
Variants

std::filesystem:: operator/ (std::filesystem::path)

From cppreference.net
friend path operator / ( const path & lhs, const path & rhs ) ;
(начиная с C++17)

Объединяет два компонента пути с использованием предпочтительного разделителя директорий, если это уместно (подробности см. в operator/= ).

Фактически возвращает path ( lhs ) / = rhs .

Эта функция не видна при обычном unqualified или qualified lookup , и может быть найдена только с помощью argument-dependent lookup , когда std::filesystem::path является ассоциированным классом аргументов. Это предотвращает нежелательные преобразования при наличии using namespace std :: filesystem ; using-directive .

Содержание

Параметры

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 << R"("C:\" / "Users" / "batman" == )" << p / "Users" / "batman" << '\n';
#   else // __linux__ etc
    std::filesystem::path p = "/home";
    std::cout << R"("/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 Applied to Behavior as published Correct behavior
LWG 3065 C++17 allowed concatenating everything convertible to path in the presence of a using-directive made hidden friend

Смотрите также

добавляет элементы к пути с разделителем директории
(публичная функция-член)