C++은 국제화를 완벽히 지원하는가?
글쓴이: 곱단오빠 / 작성시간: 목, 2007/03/15 - 9:46오후
유니코드 지원을 위해 프로그램 작성시 char보다는 wchar_t를 사용해보려 했습니다.
string대신 wstring이죠.
문제는 몇몇 C++의 표준 클래스들이 와이드 문자를 지원하지 않는 것 같아 불편합니다.
예를 들면 파일 스트림에서 open이죠.
basic_filebuf *open( const char *_Filename, ios_base::openmode _Mode );
fstream은 wfstream이라는 것이 존재하지만 저 open의 인자는 char*입니다. wchar_t*는 없습니다.
그래서 wchar_t형을 char로 바꿔주는 함수를 써서 던져줘야 하는 불편이 있습니다.
하지만 C 라이브러리에서는 fopen의 짝인 wfopen이 있고 인자는 wchar_t*형입니다.
또 예외처리에서
runtime_error는 에러메시지를 받는 인자가 wstring은 없고 string 뿐입니다.
class runtime_error : public exception { public: runtime_error(const string& message); };
왜 이런건가요? c++의 국제화 지원은 아직도 진행 중이 그런건가요?
Forums:
댓글 달기