Soumettre la recherche
Mettre en ligne
Episteme variadic template
•
Télécharger en tant que PPTX, PDF
•
1 j'aime
•
990 vues
えぴ 福田
Suivre
- 2013.11.02 C++例外安全Day@大阪 - 2013.11.09 わんくま同盟東京勉強会#85 - 2013.11.14 歌舞伎座.tech #2
Lire moins
Lire la suite
Technologie
Formation
Signaler
Partager
Signaler
Partager
1 sur 13
Télécharger maintenant
Recommandé
型安全Printf作ってみた
型安全Printf作ってみた
真一 北原
C++ Template Metaprogramming
C++ Template Metaprogramming
Akira Takahashi
PHPのタイプヒンティング
PHPのタイプヒンティング
Hidetaka Okamoto
C#coding guideline その2_20130325
C#coding guideline その2_20130325
Yoshihisa Ozaki
Lambda in template_final
Lambda in template_final
Cryolite
C言語よくある誤り
C言語よくある誤り
長岡技術科学大学 自然言語処理研究室
.NETラボ 2013-12-21 LT
.NETラボ 2013-12-21 LT
えぴ 福田
T77 episteme
T77 episteme
えぴ 福田
Recommandé
型安全Printf作ってみた
型安全Printf作ってみた
真一 北原
C++ Template Metaprogramming
C++ Template Metaprogramming
Akira Takahashi
PHPのタイプヒンティング
PHPのタイプヒンティング
Hidetaka Okamoto
C#coding guideline その2_20130325
C#coding guideline その2_20130325
Yoshihisa Ozaki
Lambda in template_final
Lambda in template_final
Cryolite
C言語よくある誤り
C言語よくある誤り
長岡技術科学大学 自然言語処理研究室
.NETラボ 2013-12-21 LT
.NETラボ 2013-12-21 LT
えぴ 福田
T77 episteme
T77 episteme
えぴ 福田
T69 episteme
T69 episteme
えぴ 福田
T45 episteme
T45 episteme
えぴ 福田
Episteme unique_ptr
Episteme unique_ptr
えぴ 福田
ぱっと見でわかるC++11
ぱっと見でわかるC++11
えぴ 福田
Yokohama6 epi
Yokohama6 epi
えぴ 福田
20160219 devsumi cookpad matsuo
20160219 devsumi cookpad matsuo
Kazuaki Matsuo
templateとautoの型推論
templateとautoの型推論
MITSUNARI Shigeo
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Preferred Networks
What is template
What is template
Akira Takahashi
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
Akira Inoue
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
和弘 井之上
プログラマ講習第2回
プログラマ講習第2回
Yuma Yoshimoto
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
プログラマ講習第3回
プログラマ講習第3回
Yuma Yoshimoto
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
やさしく知りたいC言語
やさしく知りたいC言語
uru nru
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
道化師 堂華
秀スクリプトの話
秀スクリプトの話
Hiroshi Tokumaru
C++11概要 ライブラリ編
C++11概要 ライブラリ編
egtra
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
CODE BLUE
Contenu connexe
En vedette
T69 episteme
T69 episteme
えぴ 福田
T45 episteme
T45 episteme
えぴ 福田
Episteme unique_ptr
Episteme unique_ptr
えぴ 福田
ぱっと見でわかるC++11
ぱっと見でわかるC++11
えぴ 福田
Yokohama6 epi
Yokohama6 epi
えぴ 福田
20160219 devsumi cookpad matsuo
20160219 devsumi cookpad matsuo
Kazuaki Matsuo
En vedette
(6)
T69 episteme
T69 episteme
T45 episteme
T45 episteme
Episteme unique_ptr
Episteme unique_ptr
ぱっと見でわかるC++11
ぱっと見でわかるC++11
Yokohama6 epi
Yokohama6 epi
20160219 devsumi cookpad matsuo
20160219 devsumi cookpad matsuo
Similaire à Episteme variadic template
templateとautoの型推論
templateとautoの型推論
MITSUNARI Shigeo
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Preferred Networks
What is template
What is template
Akira Takahashi
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
Akira Inoue
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
和弘 井之上
プログラマ講習第2回
プログラマ講習第2回
Yuma Yoshimoto
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
プログラマ講習第3回
プログラマ講習第3回
Yuma Yoshimoto
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
やさしく知りたいC言語
やさしく知りたいC言語
uru nru
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
道化師 堂華
秀スクリプトの話
秀スクリプトの話
Hiroshi Tokumaru
C++11概要 ライブラリ編
C++11概要 ライブラリ編
egtra
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
CODE BLUE
講座C入門
講座C入門
Tokai University
Flutterを体験してみませんか
Flutterを体験してみませんか
cch-robo
知って得するC#
知って得するC#
Shota Baba
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
Similaire à Episteme variadic template
(20)
templateとautoの型推論
templateとautoの型推論
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
What is template
What is template
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
プログラマ講習第2回
プログラマ講習第2回
Visual C++で使えるC++11
Visual C++で使えるC++11
プログラマ講習第3回
プログラマ講習第3回
Emcjp item21
Emcjp item21
やさしく知りたいC言語
やさしく知りたいC言語
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
秀スクリプトの話
秀スクリプトの話
C++11概要 ライブラリ編
C++11概要 ライブラリ編
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
講座C入門
講座C入門
Flutterを体験してみませんか
Flutterを体験してみませんか
知って得するC#
知って得するC#
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
Dernier
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Dernier
(9)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Episteme variadic template
1.
わんくま同盟茶藝部顧問 episthmh episteme@cppll.jp Microsoft MVP for
Visual C++ (2004~)
2.
variadic function お馴染み printf(const
char* format, ...) printf(“I‟m %s, %d years old.”, “Adam”, 20); variadic macro #define FL_printf(format,...) printf(“%s(%d) “ format, __FILE__, __LINE__, __VA_ARGS__) FL_printf(“I‟m %s, %d years old.”, “Adam”, 20); …そして variadic template
3.
Template parameter pack 0個以上の型の並び template<class
...Ts> struct Tuple {}; Tuple<> t0; Tuple<int> t1; Tuple<int,float> t2; Tuple<0> error; // Tsは 空 // intひとつの並び // intとfloatの並び // エラー:0は型ではない
4.
Function parameter pack 0個以上の値の並び template<class
...Ts> void f(Ts ...vs); f(); f(1); f(2, 1.0); // vs は空 // vs はintひとつの並び // vs はintとdoubleの並び
5.
typedef Ts MyList;
// error! Ts var; // error! auto copy = vs; // error!
6.
sizeof... size_t items =
sizeof...(Ts); size_t items = sizeof...(vs); packの展開 template<typename ...Ts> void f(Ts&& ...vs) { g(3.14, std::forward<Ts>(vs)...); }
7.
書式 展開 Ts... Ts&&... X<Ts,Y>::z... X<Ts,Us>... F(5, vs)... T1, …
, Tn T1&&, … , Tn&& X<T1,Y>::z, … , X<Tn,Y>::z X<T1,U1>, … , X<Tn,Un> F(5,v1), … , f(5,vn)
8.
template<typename ...Ts> void f(Ts
...vs) { g(A<Ts...>::h(vs)...); g(A<Ts...>::h(vs...)); g(A<Ts>::h(vs)...); }
9.
f(12, „3‟); すると… void
f(int v1, char v2) { // g(A<Ts...>::h(vs)...); g(A<int,char>::h(v1), A<int,char>::h(v2)); // g(A<Ts...>::h(vs...)); g(A<int,char>::h(v1,v2)); // g(A<Ts>::h(vs)...); g(A<int>::h(v1), A<char>::h(v2)); }
10.
キモは「パターン・マッチング」 template<class T1, class
T2> bool isOneOf(T1&& a, T2&& b) { return a == b; } template<class T1, class T2, class ...Ts> bool isOneOf(T1&& a, T2&& b, Ts&& ...vs) { return a == b || isOneOf(a, vs...); } assert( isOneOf(1, 2, 3.5, 4, 1, 2) );
11.
キモはやっぱり「パターン・マッチング」 // tuple<T0,T1,T2...> : //
tuple<char,int,const char*> t; get<0>(t) = „A‟; get<1>(t) = 12; … template<int N, typename ...Ts> struct tuple_data; template<int N> struct tuple_data<N> {}; template<int N, typename Thead, typename ...Tbody> struct tuple_data<N, Thead, Tbody...> : public tuple_data<N + 1, Tbody...> { Thead value; }; template<typename ...Ts> struct tuple : public tuple_data<0, Ts...> {};
12.
13.
キモは「パターン・マッチング」 template<int N, typename
Thead, typename ...Tbody> Thead& get_tuple_data(tuple_data<N, Thead, Tbody...>& t) { return t.value; } template<int N, typename ...Ts> auto get(tuple<Ts...>& t) -> decltype(get_tuple_data<N>(t)) { return get_tuple_data<N>(t); } /* おためし */ int main() { tuple<char,int,const char*> t; get<0>(t) = 'T'; get<1>(t) = 4; get<2>(t) = "two"; }
Télécharger maintenant