std::filesystem::u8path
std::filesystem::u8path (UTF-8 경로 생성)
UTF-8로 인코딩된 문자 시퀀스로부터 경로 p를 생성하는 함수예요. C++17부터 있어요(C++20에서 deprecated).
출처: cppreference
본문
<filesystem> 헤더에 정의돼 있어요.
// (1) C++17 (C++20에서 deprecated)
template< class Source >
std::filesystem::path u8path( const Source& source );
// (2) C++17 (C++20에서 deprecated)
template< class InputIt >
std::filesystem::path u8path( InputIt first, InputIt last );
UTF-8로 인코딩된 char 또는 char8_t(C++20부터) 시퀀스로부터 경로 p를 생성해요. 시퀀스는 std::string, std::string_view, null로 끝나는 멀티바이트 문자열, 또는 [first, last) 반복자 쌍으로 제공돼요.
path::value_type이char이고 네이티브 인코딩이 UTF-8이면path(source)또는path(first, last)처럼 경로를 직접 생성해요(이것이 일반적인 상황).- 그 외에는 UTF-8 문자가
path::value_type으로 변환된 경로를 생성해요. error handling은filesystem_error가 아닌 변환(예:std::codecvt) 규칙을 따라요.
참고
C++20에서 u8path는 std::u8string 계열 인자를 받는 path 생성자가 추가되면서 deprecated되었어요.
예제
#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
std::string utf8 = u8"안녕/하세요";
fs::path p = fs::u8path(utf8);
std::cout << p << '\n';
}