Submit Search
Upload
char32_tとXpressiveと
•
1 like
•
1,612 views
egtra
Follow
Boost.勉強会#6 札幌で発表したときのものです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 32
Download now
Download to read offline
Recommended
IPv6アドレスでお絵かき
IPv6アドレスでお絵かき
Yasuyuki Nakamura
20140625 google earthの最前線
20140625 google earthの最前線
Taichi Furuhashi
تقرير السجون En
تقرير السجون En
التنسيقية المصرية للحقوق والحريات
Climbing Off The Ladder, Before We Fall Off
Climbing Off The Ladder, Before We Fall Off
C4Media
I16092.00_E501-E501
I16092.00_E501-E501
Samantha Merritt
Oscars after - party
Oscars after - party
Makala D.
מנור גינדי בשבוע האופנה תל אביב
מנור גינדי בשבוע האופנה תל אביב
Manor Gindi מנור גינדי
Virální marketing
Virální marketing
Pavel Herman
Recommended
IPv6アドレスでお絵かき
IPv6アドレスでお絵かき
Yasuyuki Nakamura
20140625 google earthの最前線
20140625 google earthの最前線
Taichi Furuhashi
تقرير السجون En
تقرير السجون En
التنسيقية المصرية للحقوق والحريات
Climbing Off The Ladder, Before We Fall Off
Climbing Off The Ladder, Before We Fall Off
C4Media
I16092.00_E501-E501
I16092.00_E501-E501
Samantha Merritt
Oscars after - party
Oscars after - party
Makala D.
מנור גינדי בשבוע האופנה תל אביב
מנור גינדי בשבוע האופנה תל אביב
Manor Gindi מנור גינדי
Virální marketing
Virální marketing
Pavel Herman
פרסום באינסטגרם | מקאן דיגיטל
פרסום באינסטגרם | מקאן דיגיטל
McCANN DIGITAL
Structurarea unei cotatii in mai multe sectiuni
Structurarea unei cotatii in mai multe sectiuni
OdooRomania
Facebook rinkodara Lietuvos elektroniniams verslams
Facebook rinkodara Lietuvos elektroniniams verslams
Vladas Sapranavicius
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
Kota Abe
EL BOSQUE ENCANTADO
EL BOSQUE ENCANTADO
Verónica Nicolás Nicolás
resumeh aali1
resumeh aali1
Hossein Nourian, DBA
EU road fatalities - age distribution
EU road fatalities - age distribution
PODIS Ltd
Transformation or Transition
Transformation or Transition
Mike Pounsford
Buyer Persona - Key to B2B online marketing success
Buyer Persona - Key to B2B online marketing success
ShimonBen
J350 Social Media Intro
J350 Social Media Intro
University of Oregon
Plan de-clase
Plan de-clase
Ely Morales
Educar valores a traves del futbol
Educar valores a traves del futbol
Diego Menino
The Virtual Strike: on pitches in advertising
The Virtual Strike: on pitches in advertising
Zigurds Zakis
小黄鸭和鳄鱼
小黄鸭和鳄鱼
Sharon Gal Or
Tautas ataudzes mērķi NAP2020 un to sasniegšanas gaita
Tautas ataudzes mērķi NAP2020 un to sasniegšanas gaita
Pārresoru kordinācijas centrs (PKC)
شهادة جامعة دمشق
شهادة جامعة دمشق
Mohammad Shammout
Vi lever for å levere
Vi lever for å levere
Martin Koksrud Bekkelund
Psych 100B
Psych 100B
Caren Nguyen
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws sqaleの場合
Ryo Kuroda
Bear gss experiences shareing
Bear gss experiences shareing
DesBear Li
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
More Related Content
Viewers also liked
פרסום באינסטגרם | מקאן דיגיטל
פרסום באינסטגרם | מקאן דיגיטל
McCANN DIGITAL
Structurarea unei cotatii in mai multe sectiuni
Structurarea unei cotatii in mai multe sectiuni
OdooRomania
Facebook rinkodara Lietuvos elektroniniams verslams
Facebook rinkodara Lietuvos elektroniniams verslams
Vladas Sapranavicius
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
Kota Abe
EL BOSQUE ENCANTADO
EL BOSQUE ENCANTADO
Verónica Nicolás Nicolás
resumeh aali1
resumeh aali1
Hossein Nourian, DBA
EU road fatalities - age distribution
EU road fatalities - age distribution
PODIS Ltd
Transformation or Transition
Transformation or Transition
Mike Pounsford
Buyer Persona - Key to B2B online marketing success
Buyer Persona - Key to B2B online marketing success
ShimonBen
J350 Social Media Intro
J350 Social Media Intro
University of Oregon
Plan de-clase
Plan de-clase
Ely Morales
Educar valores a traves del futbol
Educar valores a traves del futbol
Diego Menino
The Virtual Strike: on pitches in advertising
The Virtual Strike: on pitches in advertising
Zigurds Zakis
小黄鸭和鳄鱼
小黄鸭和鳄鱼
Sharon Gal Or
Tautas ataudzes mērķi NAP2020 un to sasniegšanas gaita
Tautas ataudzes mērķi NAP2020 un to sasniegšanas gaita
Pārresoru kordinācijas centrs (PKC)
شهادة جامعة دمشق
شهادة جامعة دمشق
Mohammad Shammout
Vi lever for å levere
Vi lever for å levere
Martin Koksrud Bekkelund
Psych 100B
Psych 100B
Caren Nguyen
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws sqaleの場合
Ryo Kuroda
Bear gss experiences shareing
Bear gss experiences shareing
DesBear Li
Viewers also liked
(20)
פרסום באינסטגרם | מקאן דיגיטל
פרסום באינסטגרם | מקאן דיגיטל
Structurarea unei cotatii in mai multe sectiuni
Structurarea unei cotatii in mai multe sectiuni
Facebook rinkodara Lietuvos elektroniniams verslams
Facebook rinkodara Lietuvos elektroniniams verslams
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
EL BOSQUE ENCANTADO
EL BOSQUE ENCANTADO
resumeh aali1
resumeh aali1
EU road fatalities - age distribution
EU road fatalities - age distribution
Transformation or Transition
Transformation or Transition
Buyer Persona - Key to B2B online marketing success
Buyer Persona - Key to B2B online marketing success
J350 Social Media Intro
J350 Social Media Intro
Plan de-clase
Plan de-clase
Educar valores a traves del futbol
Educar valores a traves del futbol
The Virtual Strike: on pitches in advertising
The Virtual Strike: on pitches in advertising
小黄鸭和鳄鱼
小黄鸭和鳄鱼
Tautas ataudzes mērķi NAP2020 un to sasniegšanas gaita
Tautas ataudzes mērķi NAP2020 un to sasniegšanas gaita
شهادة جامعة دمشق
شهادة جامعة دمشق
Vi lever for å levere
Vi lever for å levere
Psych 100B
Psych 100B
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws sqaleの場合
Bear gss experiences shareing
Bear gss experiences shareing
More from egtra
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)
egtra
Casablanca
Casablanca
egtra
Firefox拡張機能を始める
Firefox拡張機能を始める
egtra
ATLに見る魔術
ATLに見る魔術
egtra
再変換 (K2Editor)
再変換 (K2Editor)
egtra
C++11概要 ライブラリ編
C++11概要 ライブラリ編
egtra
Boost.Range入門
Boost.Range入門
egtra
Boost.Graph入門
Boost.Graph入門
egtra
More from egtra
(10)
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)
Casablanca
Casablanca
Firefox拡張機能を始める
Firefox拡張機能を始める
ATLに見る魔術
ATLに見る魔術
再変換 (K2Editor)
再変換 (K2Editor)
C++11概要 ライブラリ編
C++11概要 ライブラリ編
Boost.Range入門
Boost.Range入門
Boost.Graph入門
Boost.Graph入門
Recently uploaded
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Recently uploaded
(8)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
char32_tとXpressiveと
1.
char32_tとXpressiveと H.23/11/05 Egtra Boost.勉強会#6 札幌
2.
char32_tとXpressiveと • Egtra
– @egtra – http://dev.activebasic.com/egtra/
3.
char32_t…… • とchar16_t
– C++11の新しいデータ型 – typedefではない – UTF‐32とUTF‐16 – 4バイトと2バイト
4.
char32_tとchar16_t • 新しいデータ型
– void f(char c); – void f(wchar_t c); – void f(char16_t c); – void f(char32_t c);
5.
char32_tとchar16_t • リテラル
– char c = 'a'; – wchar_t c = L'a'; – char16_t c = u'a'; – char32_t c = U'a';
6.
char32_tとchar16_t • リテラル
– char s1[] = "hoge"; – wchar_t s2[] = L"hoge"; – char16_t s3[] = u"hoge"; – char32_t s4[] = U"hoge"; – char s5[] = u8"hoge";
7.
char32_tとchar16_t • リテラル
– char const* s1 = "foo"; – wchar_t const* s2 = L"foo"; – char16_t const* s3 = u"foo"; – char32_t const* s4 = U"foo"; – char const* s5 = u8"foo";
8.
char32_tとchar16_t • std::basic_string<>
– std::string – std::wstring – std::u16string – std::u32string
9.
char32_tとchar16_t • どこで使える?
– GCC 4.4/4.5 – Clang 2.9 – Visual C++ 2010?
10.
char32_tとchar16_t • Visual C++
2010 – typedef!!! – v11(次バージョン)でも変わらず – u""やU""やu8""も非対応
11.
char32_tとchar16_t • 以上
– 君も今日からchar16/32_t使い – UTF‐16/32なデータのところに char16/32_t使おう!
12.
char32_tとchar16_t • 以上
– 君も今日からchar16/32_t使い – 私は使っていません •Visual C++ 2010なので……
13.
char32_tとchar16_t • 以上と思った?
– 足りないものだらけですね
14.
char32_tとchar16_t (続) • 入出力
– u16streamとかu32streamとか ありません – 適当にtypedefしましょう
15.
char32_tとchar16_t (続) • <codecvt>
– codecvt_utf8 •UTF‐8とUTF‐32 – codecvt_utf16 •UTF‐16とUTF‐32 – codecvt_utf8_utf16
16.
char32_tとchar16_t (続) • UTF‐8のファイルをchar32_tとして読む
typedef basic_ifstream<char32_t> u32ifstream; u32ifstream ifs("hoge.txt"); locale loc(locale(), new codecvt_utf8<char32_t>()); ifs.imbue(loc);
17.
char32_tとchar16_t (続) • UTF‐8のファイルをchar32_tとして読む
typedef basic_ifstream<char32_t> u32ifstream; u32ifstream ifs("hoge.txt"); – 実はこれでいける(はず)
18.
char32_tとchar16_t (続) • なぜ?
std::locale::classic() – 下を持っている •codecvt<char, wchar_t> •codecvt<char, char16_t> •codecvt<char, char32_t>
19.
char32_tとchar16_t (続) • 特殊化
codecvt<char, char16_t> codecvt<char, char32_t> – UTF‐8とUTF‐16/32との変換 – これで揃った?
20.
char32_tとchar16_t (続) • codecvtで可能な変換
– char(マルチバイト) ⇄ wchar_t (C++98/03) – char (UTF‐8) ⇄ UTF‐16 – char (UTF‐8) ⇄ UTF‐32 – UTF‐16 ⇄ UTF‐32
21.
char32_tとchar16_t (続) • マルチバイトとUTFの変換は?
–ない! – iconvなどを使いましょう
22.
char32_tとchar16_t (続) • wchar_tは?
– UTF‐16/32とは限らない •例: ja_JP.eucJPな*BSD
23.
char32_tとchar16_t (続) • マルチバイトとUTFの変換は?
– 解その2: Boost.Locale? •今回は説明しません
24.
char32_tとchar16_t (続) • std::basic_regex<>
– charとwchar_t版しかありません •なのでBoost.Regex(ICU版)を 使いましょう
25.
char32_tとchar16_t (続) • 以上
26.
おまけ • Boost.XpressiveでUTF‐32の 文字列を使いたい
– やっつけで対応させた
27.
おまけ • traitsクラスを作る
– やっつけなので null_regex_traits<char32_t> から派生 struct u32_traits : …… {
28.
おまけ • traitsクラスを作る
struct locale_type {};
29.
おまけ • traitsクラスを作る
enum char_class { InvalidClass = 0, Lu = 1, Ll = 1 << 1, ……
30.
おまけ • traitsクラスを作る
NewLine = 1 << ……, }; typedef boost::uint_value_t< NewLine>::least_t char_class_type;
31.
おまけ • traitsクラスを作る
private: static std::unordered_map< char_type, char_class_type> LoadCategoryMap(); – isctype内で使用
32.
おまけ • traitsクラスを作る namespace
Property { boost::proto::terminal< boost::xpressive::detail:: posix_charset_placeholder>::type const L = {{"L", false}}; ……
Download now