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_typechar이고 네이티브 인코딩이 UTF-8이면 path(source) 또는 path(first, last)처럼 경로를 직접 생성해요(이것이 일반적인 상황).
  • 그 외에는 UTF-8 문자가 path::value_type으로 변환된 경로를 생성해요. error handling은 filesystem_error가 아닌 변환(예: std::codecvt) 규칙을 따라요.

참고

C++20에서 u8pathstd::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';
}

더 알아보기 (Learn more)

cppreference