앞으로 조금씩이라도 꾸준히 C++11에 새로 추가되는 기능들을 간단하게 소개하려고 합니다.
새로운 라이브러리의 경우 boost 라이브러리에 있는 것은 boost 라이브러리를 통해서 예제와 같이
좀더 자세하게 설명하고 그렇지 못한 것들은 간단한 설명과 코드로만 설명하려고 합니다.

C++ 프로그래머에게 새로운 C++ 표준은 먼 미래의 것이 아닙니다. 지금부터 조금씩 공부해보죠^^
(개인적으로 예전에 STL의 경우를 보면 앞으로 C++11을 아는 C++ 프로그래머와 모르는 프로그래머로 나누어지지 않을까 생각합니다)



현재의 C++에서는 두 가지 종류의 문자형을 지원하고 있습니다. char wchar_t 입니다.

char szName[] = “jacking”;

wchar_t szName2[] = L”jacking”;

 

그러나 C++0x에서는 유니코드를 강력하게 지원하기 위해 새로운 문자형이 추가 됩니다.

 

 

 

UTF-8

UTF-8을 사용하는 문자형은 따로 없고 기존의 char를 사용합니다.

char szName[] = u8”jacking”;

문자열 리터럴(literal) 앞에 u8을 붙입니다.

 

 

UTF-16

UTF-16을 사용하는 문자형 변수를 선언할 때는 char_16t를 사용합니다.

char16_t szName3[] = u”jacking”;

문자열 리터럴 앞에 u를 붙입니다.

 

 

UTF-32

UTF-32을 사용하는 문자형 변수를 선언할 때는 char_32t를 사용합니다.

char32_t szName4[] = U”jacking”;

문자열 리터럴 앞에 U를 붙입니다.



댓글을 달아 주세요

  1. icartsh@gmail.com 2011.08.22 17:05  댓글주소  수정/삭제  댓글쓰기

    vs2010에서 아직은 위의 내용을 사용해 볼수는 없는건가요..?

    • 흥배 2011.08.23 16:36  댓글주소  수정/삭제

      vs2010에서는 불가능하며 차기 버전에서 C++11을 지원해야만 사용할 수 있습니다

  2. serivires@gmail.com 2011.08.23 08:28  댓글주소  수정/삭제  댓글쓰기

    VS2010에서는 언제쯤 사용가능할까요?

    • 흥배 2011.08.23 16:37  댓글주소  수정/삭제

      vs2010에서는 불가능하며 차기 버전에서 C++11을 지원해야만 사용할 수 있습니다. 개인적인 생각으로 빠르면 VC++11(다음 VC++ 버전)이나 아니면 VC++11의 서비스팩을 통해서 지원되지 않을까 생각합니다.

  3. wafe 2011.09.14 11:37  댓글주소  수정/삭제  댓글쓰기

    기존의 L"" prefix 처럼 u8 을 붙이면 소스 파일 인코딩과는 상관없이 컴파일러가 인코딩 전환을 해주는 기능이라고 이해하면 되는거죠?

  4. wafe 2011.09.14 11:39  댓글주소  수정/삭제  댓글쓰기

    UTF-16 이나 32는 변수 타입이 달라서 잘 구분이 되는데 UTF-8은 기존 그대로 char 를 쓰니 헷갈릴 일이 많을 것 같네요. 웬만하면 UTF-16 을 쓰는게 나을 것 같다는 생각이 듭니다.

  5. 딩기리딩 2012.07.08 23:07  댓글주소  수정/삭제  댓글쓰기

    raw string은 지원 하나요?