Namespaces
Variants

std::experimental::filesystem::path:: path

From cppreference.net
path ( ) ;
(1) (filesystem TS)
path ( const path & p ) ;
(2) (filesystem TS)
path ( path && p ) ;
(3) (filesystem TS)
template < class Source >
path ( const Source & source ) ;
(4) (filesystem TS)
template < class InputIt >
path ( InputIt first, InputIt last ) ;
(5) (filesystem TS)
template < class Source >
path ( const Source & source, const std:: locale & loc ) ;
(6) (filesystem TS)
template < class InputIt >
path ( InputIt first, InputIt last, const std:: locale & loc ) ;
(7) (filesystem TS)

Создает новый path объект.

1) Создает пустой путь.
2) Конструктор копирования. Создает копию p .
3) Конструктор перемещения. Создает копию p , p остается в допустимом, но неопределенном состоянии.
4,5) Создает путь из символьной последовательности, предоставленной source (4) , который является указателем или входным итератором на нуль-терминированную символьную/широкосимвольную последовательность или std::basic_string , или представлен как пара входных итераторов [ first , last ) (5) . Допускается любой из четырех символьных типов char , char16_t , char32_t , wchar_t , и метод преобразования в нативную кодировку символов зависит от используемого типа символов в source .
  • Если тип символов источника - char , предполагается, что кодировка источника является нативной узкой кодировкой (поэтому в POSIX-системах преобразование не выполняется).
  • Если тип символов источника - char16_t , используется преобразование из UTF-16 в нативную кодировку файловой системы.
  • Если тип символов источника - char32_t , используется преобразование из UTF-32 в нативную кодировку файловой системы.
  • Если тип символов источника - wchar_t , предполагается, что входные данные представлены в нативной широкой кодировке (поэтому в Windows преобразование не выполняется).
6,7) Создает путь из последовательности символов, предоставленной source (6) , которая является указателем или входным итератором на нуль-терминированную последовательность символов или std::string , или представлена в виде пары входных итераторов [ first , last ) (7) . Единственный допустимый тип символов - char . Использует loc для выполнения преобразования кодировки символов. Если value_type является wchar_t , преобразует в широкий формат с использованием фасета std:: codecvt < wchar_t , char , std:: mbstate_t > из loc . В противном случае сначала преобразует в широкий формат с использованием фасета std:: codecvt < wchar_t , char , std:: mbstate_t > , а затем преобразует в собственный тип символов файловой системы с использованием фасета std:: codecvt < wchar_t , value_type > из loc .

Содержание

Параметры

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

Исключения

1,2) (нет)
3)
noexcept спецификация:
noexcept
4-7) (нет)

Примечания

Для создания переносимых путей из строк в кодировке Unicode см. u8path .

Пример

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::path p1 = "/usr/lib/sendmail.cf"; // переносимый формат
    fs::path p2 = "C:\\users\\abcdef\\AppData\\Local\\Temp\\"; // нативный формат
    fs::path p3 = L"D:/猫.txt"; // широкая строка
    std::cout << "p1 = " << p1 << '\n'
              << "p2 = " << p2 << '\n'
              << "p3 = " << p3 << '\n';
}

Вывод:

p1 = "/usr/lib/sendmail.cf"
p2 = "C:\users\abcdef\AppData\Local\Temp\"
p3 = "D:/猫.txt"

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

создает path из источника в кодировке UTF-8
(функция)