Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
egtra
PDF, PPTX
1,618 views
char32_tとXpressiveと
Boost.勉強会#6 札幌で発表したときのものです。
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 32
2
/ 32
3
/ 32
4
/ 32
5
/ 32
6
/ 32
7
/ 32
8
/ 32
9
/ 32
10
/ 32
11
/ 32
12
/ 32
13
/ 32
14
/ 32
15
/ 32
16
/ 32
17
/ 32
18
/ 32
19
/ 32
20
/ 32
21
/ 32
22
/ 32
23
/ 32
24
/ 32
25
/ 32
26
/ 32
27
/ 32
28
/ 32
29
/ 32
30
/ 32
31
/ 32
32
/ 32
More Related Content
PPT
IPv6アドレスでお絵かき
by
Yasuyuki Nakamura
PDF
20140625 google earthの最前線
by
Taichi Furuhashi
DOC
تقرير السجون En
by
التنسيقية المصرية للحقوق والحريات
PDF
Climbing Off The Ladder, Before We Fall Off
by
C4Media
PDF
I16092.00_E501-E501
by
Samantha Merritt
PPSX
Oscars after - party
by
Makala D.
PDF
מנור גינדי בשבוע האופנה תל אביב
by
Manor Gindi מנור גינדי
PDF
Virální marketing
by
Pavel Herman
IPv6アドレスでお絵かき
by
Yasuyuki Nakamura
20140625 google earthの最前線
by
Taichi Furuhashi
تقرير السجون En
by
التنسيقية المصرية للحقوق والحريات
Climbing Off The Ladder, Before We Fall Off
by
C4Media
I16092.00_E501-E501
by
Samantha Merritt
Oscars after - party
by
Makala D.
מנור גינדי בשבוע האופנה תל אביב
by
Manor Gindi מנור גינדי
Virální marketing
by
Pavel Herman
Viewers also liked
PDF
פרסום באינסטגרם | מקאן דיגיטל
by
McCANN DIGITAL
PPTX
Structurarea unei cotatii in mai multe sectiuni
by
OdooRomania
PPT
Facebook rinkodara Lietuvos elektroniniams verslams
by
Vladas Sapranavicius
PPTX
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
by
Kota Abe
DOC
EL BOSQUE ENCANTADO
by
Verónica Nicolás Nicolás
PDF
resumeh aali1
by
Hossein Nourian, DBA
PDF
EU road fatalities - age distribution
by
PODIS Ltd
PDF
Transformation or Transition
by
Mike Pounsford
PPTX
Buyer Persona - Key to B2B online marketing success
by
ShimonBen
PPT
J350 Social Media Intro
by
University of Oregon
DOCX
Plan de-clase
by
Ely Morales
PDF
Educar valores a traves del futbol
by
Diego Menino
PDF
The Virtual Strike: on pitches in advertising
by
Zigurds Zakis
PDF
小黄鸭和鳄鱼
by
Sharon Gal Or
PDF
Tautas ataudzes mērķi NAP2020 un to sasniegšanas gaita
by
Pārresoru kordinācijas centrs (PKC)
PDF
شهادة جامعة دمشق
by
Mohammad Shammout
PDF
Vi lever for å levere
by
Martin Koksrud Bekkelund
DOC
Psych 100B
by
Caren Nguyen
PDF
サーバ構築自動化 On aws sqaleの場合
by
Ryo Kuroda
PDF
Bear gss experiences shareing
by
DesBear Li
פרסום באינסטגרם | מקאן דיגיטל
by
McCANN DIGITAL
Structurarea unei cotatii in mai multe sectiuni
by
OdooRomania
Facebook rinkodara Lietuvos elektroniniams verslams
by
Vladas Sapranavicius
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
by
Kota Abe
EL BOSQUE ENCANTADO
by
Verónica Nicolás Nicolás
resumeh aali1
by
Hossein Nourian, DBA
EU road fatalities - age distribution
by
PODIS Ltd
Transformation or Transition
by
Mike Pounsford
Buyer Persona - Key to B2B online marketing success
by
ShimonBen
J350 Social Media Intro
by
University of Oregon
Plan de-clase
by
Ely Morales
Educar valores a traves del futbol
by
Diego Menino
The Virtual Strike: on pitches in advertising
by
Zigurds Zakis
小黄鸭和鳄鱼
by
Sharon Gal Or
Tautas ataudzes mērķi NAP2020 un to sasniegšanas gaita
by
Pārresoru kordinācijas centrs (PKC)
شهادة جامعة دمشق
by
Mohammad Shammout
Vi lever for å levere
by
Martin Koksrud Bekkelund
Psych 100B
by
Caren Nguyen
サーバ構築自動化 On aws sqaleの場合
by
Ryo Kuroda
Bear gss experiences shareing
by
DesBear Li
More from egtra
PDF
Visual C++コード分析を支えるSAL
by
egtra
PDF
エクストリームC++11/14プログラミング
by
egtra
PDF
Visual C++ 2015の紹介(C++11/14的に)
by
egtra
PDF
Casablanca
by
egtra
PDF
Firefox拡張機能を始める
by
egtra
PDF
ATLに見る魔術
by
egtra
PDF
再変換 (K2Editor)
by
egtra
PDF
C++11概要 ライブラリ編
by
egtra
PDF
Boost.Range入門
by
egtra
PPTX
Boost.Graph入門
by
egtra
Visual C++コード分析を支えるSAL
by
egtra
エクストリームC++11/14プログラミング
by
egtra
Visual C++ 2015の紹介(C++11/14的に)
by
egtra
Casablanca
by
egtra
Firefox拡張機能を始める
by
egtra
ATLに見る魔術
by
egtra
再変換 (K2Editor)
by
egtra
C++11概要 ライブラリ編
by
egtra
Boost.Range入門
by
egtra
Boost.Graph入門
by
egtra
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