std::experimental::filesystem::path:: path
From cppreference.net
<
cpp
|
experimental
|
fs
|
path
|
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
(функция) |