N3572 Unicode Support in the Standard Library
Unicodeã©ã¤ãã©ãªãææ¡ããã¦ãã¾ãã
ãã®ã©ã¤ãã©ãªã®ç¹å¾´ã¯ãæååãcharãwchar_tã®ãããªåºå®é·ã®æååã®ã³ã³ããã¨ãã¦ã§ã¯ãªããã³ã¼ããã¤ã³ã(æå)ã®ã³ã³ããã¨ãã¦å®ç¾©ãã¦ããã¨ããã§ããã"ããããã"ãã¨ããæååããã£ãå ´åãã¨ã³ã³ã¼ãã£ã³ã°ã«å¯ãããæååã®ãµã¤ãºãåå¾ããã¨ãã³ã¼ããã¤ã³ãã®æ°ã§ãã5ã«ãªãã¾ãã
åºæ¬çãªä½¿ãæ¹ã¯ä»¥ä¸ã®ããã«ãªãã¾ãï¼
// UTF-8ã®æåå encoding_string<encoding::utf8> s1(u8"ããããã"); // ã·ã¹ãã ã®æåã³ã¼ãããUTF-8ã«å¤æ encoding_string<encoding::utf8> s2("ããããã", encoding::system); // æåæ°ãåå¾(5ãå ¥ã) size_t size = s1.codeunit_size();
徿¥ã®ã¨ã³ã³ã¼ãã£ã³ã°ãè¦å®ããªãcharã¯systemã¨ã³ã³ã¼ãã£ã³ã°ãwchar_tã¯wideã¨ã³ã³ã¼ãã£ã³ã°ã¨ãã¦æ±ãã¾ããã·ã¹ãã ã®APIã¨ããã¨ãããå ´åã¯ããããã®ã¨ã³ã³ã¼ãã£ã³ã°ã«å¤æãã¦æ¸¡ããã¨ã«ãªãã¾ãã
ã¤ãã¬ã¼ã¿ãã©ã®ãããªå®ç¾©ã«ãªã£ã¦ããã®ãã¯ãããèªã¿åããªãã£ãã®ã§ããã§ã¯è§¦ãã¾ããã
å
¥åºåã¹ããªã¼ã ã®æ¼ç®åãæåãããèªã¿åããªãã£ãã®ã§ããããã¨ãã°ãã¡ã¤ã«ã¸ã®åºåã®å ´åã¯æå®ãããã¨ã³ã³ã¼ãã£ã³ã°ã使ç¨ããæ¨æºåºåã¸ã®åºåã®å ´åã¯ãã·ã¹ãã ã®ã¨ã³ã³ã¼ãã£ã³ã°ã使ç¨ãããã¨ãããããªãã¨ã¯å
é¨ã§ãã£ã¦ãããã®ããæ°ã«ãªãã¨ããã§ãããããã§ããªãå ´åã¯ãèªåã§ã·ã¹ãã ã¨ã³ã³ã¼ãã£ã³ã°ã®encoding_stringã«å¤æãã¦ããcoutã«æ¸¡ãå¿
è¦ãããã¾ãã