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)
에서 제공하는 문자 시퀀스로부터 경로를 생성합니다.
source
는 널 종료 문자 시퀀스에 대한 포인터 또는 입력 반복자이거나
std::string
이거나, 입력 반복자 쌍 [
first
,
last
)으로 표현됩니다
(7)
. 허용되는 유일한 문자 타입은
char
입니다. 문자 인코딩 변환을 수행하기 위해
loc
을 사용합니다. 만약
value_type
이
wchar_t
라면,
loc
의
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
패싯을 사용하여 와이드 문자로 변환합니다. 그렇지 않으면, 먼저
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
패싯을 사용하여 와이드 문자로 변환한 다음,
loc
의
std::
codecvt
<
wchar_t
, value_type
>
패싯을 사용하여 파일시스템 네이티브 문자 타입으로 변환합니다.
목차 |
매개변수
| p | - | 복사할 경로 |
| source | - | std::basic_string , 널 종료 문자열에 대한 포인터, 또는 널 종료 문자 시퀀스를 가리키는 문자 값 타입을 가진 입력 반복자 (문자 타입은 오버로드 (6) 에서 char 이어야 함) |
| first, last | - | UTF-8 인코딩된 문자 시퀀스를 지정하는 LegacyInputIterator s 쌍 |
| loc | - | 사용할 인코딩 변환을 정의하는 로케일 |
| 타입 요구사항 | ||
-
InputIt
는
LegacyInputIterator
요구사항을 충족해야 함.
|
||
-
InputIt
의 값 타입은 오버로드
(5)
를 사용하기 위해
char
,
wchar_t
,
char16_t
및
char32_t
네 가지 문자 타입 중 하나여야 함.
|
||
-
InputIt
의 값 타입은 오버로드
(7)
를 사용하기 위해
char
이어야 함.
|
||
예외
1,2)
(없음)
3)
noexcept
명세:
noexcept
4-7)
(없음)
참고 사항
유니코드 문자열에서 이식 가능한 경로명 생성을 위해서는 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"
참고 항목
UTF-8 인코딩된 소스로부터
path
를 생성합니다
(함수) |