utf8, utf16, utf32 및 wchar_t (OS에 따라 utf32 또는 utf16 임) 등의 다양한 인코딩으로 문자열을 가져올 수있는 API를 작성하고 있습니다.C++의 새로운 유니 코드 문자 0x
새로운 C++ 표준이는 sizeof 모호성이없는 미래에 사용되어야한다, 그래서뿐만 아니라 그들을 지원하고자하는 새로운 유형의
char16_t
및char32_t
을 도입했지만, 문제는 그들은 방해입니다 정상적으로uint16_t
,uint32_t
,wchar_t
같은 유형을 참조 할 수 있기 때문에 과부하가 허용되지 않는 유형입니까?class some_class { public: void set(std::string); // utf8 string void set(std::wstring); // wchar string utf16 or utf32 according // to sizeof(wchar_t) void set(std::basic_string<uint16_t>) // wchar independent utf16 string void set(std::basic_string<uint32_t>); // wchar independent utf32 string #ifdef HAVE_NEW_UNICODE_CHARRECTERS void set(std::basic_string<char16_t>) // new standard utf16 string void set(std::basic_string<char32_t>); // new standard utf32 string #endif };
그래서 난 그냥 쓸 수 있습니다 :
foo.set(U"Some utf32 String"); foo.set(u"Some utf16 string");
std::basic_string<char16_t>
의 타입 정의는 무엇및
std::basic_string<char32_t>
오늘이 같이typedef basic_string<wchar_t> wstring.
내가 어떤 참조를 찾을 수 없습니다.
편집 : 난 그냥이 실제 표준 요구 사항이 있는지 확인하고 gcc를-주의하지 할
typedef basic_string<char16_t> u16string; typedef basic_string<char32_t> u32string;
: 이러한 새로운 유형의 도입 GCC-4.4의 헤더에 따라.
의도하지 않은 내 사소한 방해/방해/간섭/맞춤법 corr 유혹. – ephemient
고맙습니다. 수정본을 다시 병합합니다. – Artyom