Namespaces
Variants

std::experimental::filesystem::path:: append, std::experimental::filesystem::path:: operator/=

From cppreference.net
path & operator / = ( const path & p ) ;
(1) (filesystem TS)
template < class Source >
path & operator / = ( const Source & source ) ;
(2) (filesystem TS)
template < class Source >
path & append ( const Source & source ) ;
(3) (filesystem TS)
template < class InputIt >
path & append ( InputIt first, InputIt last ) ;
(4) (filesystem TS)
**Примечание:** Весь код C++ внутри тегов ` ` сохранен без изменений, как и требовалось. HTML-теги и атрибуты также остались нетронутыми.
1) Сначала добавляет предпочтительный разделитель каталогов к this , за исключением случаев, когда выполняется любое из следующих условий:
* разделитель был бы избыточным ( * this уже заканчивается разделителем).
* * this пуст, или его добавление превратит относительный путь в абсолютный каким-либо другим способом.
* p является пустым путём.
* p. native ( ) начинается с разделителя директории.
Затем добавляет p. native ( ) к пути, поддерживаемому * this .
2,3) То же, что и (1) , но принимает любую std:: basic_string , нуль-терминированную многобайтовую строку или входной итератор, указывающий на нуль-терминированную многобайтовую последовательность.
4) То же, что и (1) , но принимает любую пару итераторов, обозначающую многобайтовую строку.

Содержание

Параметры

p - путь для добавления
source - std:: basic_string , строка с нулевым завершителем, или итератор ввода, указывающий на последовательность многобайтовых символов с нулевым завершителем, которая представляет имя пути (в портируемом или нативном формате)
first, last - пара LegacyInputIterator s , которая задает последовательность многобайтовых символов, представляющую имя пути
Требования к типам
-
InputIt должен удовлетворять требованиям LegacyInputIterator .
-
Тип значения InputIt должен быть одним из кодированных символьных типов ( char , wchar_t , char16_t и char32_t ).

Возвращаемое значение

* this

Исключения

Может выбрасывать filesystem_error при ошибках API базовой ОС или std:: bad_alloc при неудачном выделении памяти.

Пример

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::path p1 = "C:";
    p1 /= "Users"; // не вставляет разделитель
                   // "C:Users" является относительным путем в Windows
                   // добавление разделителя каталогов превратит его в абсолютный путь
    std::cout << "\"C:\" / \"Users\" == " << p1 << '\n';
    p1 /= "batman"; // вставляет fs::path::preferred_separator, '\' в Windows
    std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n';
}

Возможный вывод:

"C:" / "Users" == "C:Users"
"C:" / "Users" / "batman" == "C:Users\batman"

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

объединяет два пути без добавления разделителя директорий
(public member function)
объединяет два пути с разделителем директорий
(function)