Enviar pesquisa
Carregar
boost and c++11
•
5 gostaram
•
1,493 visualizações
Akihiko Matuura
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 51
Baixar agora
Baixar para ler offline
Recomendados
20180824 DLLab推論ナイト_深層学習モデル推論ライブラリ「Menoh」の紹介/Python以外でDeepLearning
20180824 DLLab推論ナイト_深層学習モデル推論ライブラリ「Menoh」の紹介/Python以外でDeepLearning
Preferred Networks
2016tf study5
2016tf study5
Shin Asakawa
Development and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and maf
Kenta Oono
TensorFlowで遊んでみよう!
TensorFlowで遊んでみよう!
Kei Hirata
Go 言語を語ってみるか
Go 言語を語ってみるか
Akihiko Matuura
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
C++ Template Metaprogramming
C++ Template Metaprogramming
Akira Takahashi
Recomendados
20180824 DLLab推論ナイト_深層学習モデル推論ライブラリ「Menoh」の紹介/Python以外でDeepLearning
20180824 DLLab推論ナイト_深層学習モデル推論ライブラリ「Menoh」の紹介/Python以外でDeepLearning
Preferred Networks
2016tf study5
2016tf study5
Shin Asakawa
Development and Experiment of Deep Learning with Caffe and maf
Development and Experiment of Deep Learning with Caffe and maf
Kenta Oono
TensorFlowで遊んでみよう!
TensorFlowで遊んでみよう!
Kei Hirata
Go 言語を語ってみるか
Go 言語を語ってみるか
Akihiko Matuura
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
C++ Template Metaprogramming
C++ Template Metaprogramming
Akira Takahashi
Boostのあるプログラミング生活
Boostのあるプログラミング生活
Akira Takahashi
ABC2015 Summer LT
ABC2015 Summer LT
Kensuke Onishi
Boost study meeting opening 4
Boost study meeting opening 4
Akira Takahashi
CG基礎3 メタリンク
CG基礎3 メタリンク
Tetsuro Nakamura
boost::shared_ptr tutorial
boost::shared_ptr tutorial
NU_Pan
boost - std - C#
boost - std - C#
Tatsuya Ishikawa
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
Vissarion Fisikopoulos
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
yoshihikoozaki5
Boost勉強会 #10 ディスカッションまとめ
Boost勉強会 #10 ディスカッションまとめ
Sigureya
Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI
hira_kuni_45
ゲーム開発経営ゲーム
ゲーム開発経営ゲーム
Yuki Miyatake
3DCAD@VDI活用とCADデータ管理のロードマップ
3DCAD@VDI活用とCADデータ管理のロードマップ
Dell TechCenter Japan
Boost container feature
Boost container feature
Akira Takahashi
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
Akira Takahashi
Boost tour 1.60.0
Boost tour 1.60.0
Akira Takahashi
3D CADと3Dプリンタ体験セミナー #1
3D CADと3Dプリンタ体験セミナー #1
Kou Ouchi
Unity MeshとColliderについて
Unity MeshとColliderについて
Self Norl
Boost apps ver1.0
Boost apps ver1.0
hosokawa atsushi
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
Ryuichi Kubuki
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Tatsuya Tojima
Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
Mais conteúdo relacionado
Destaque
Boostのあるプログラミング生活
Boostのあるプログラミング生活
Akira Takahashi
ABC2015 Summer LT
ABC2015 Summer LT
Kensuke Onishi
Boost study meeting opening 4
Boost study meeting opening 4
Akira Takahashi
CG基礎3 メタリンク
CG基礎3 メタリンク
Tetsuro Nakamura
boost::shared_ptr tutorial
boost::shared_ptr tutorial
NU_Pan
boost - std - C#
boost - std - C#
Tatsuya Ishikawa
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
Vissarion Fisikopoulos
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
yoshihikoozaki5
Boost勉強会 #10 ディスカッションまとめ
Boost勉強会 #10 ディスカッションまとめ
Sigureya
Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI
hira_kuni_45
ゲーム開発経営ゲーム
ゲーム開発経営ゲーム
Yuki Miyatake
3DCAD@VDI活用とCADデータ管理のロードマップ
3DCAD@VDI活用とCADデータ管理のロードマップ
Dell TechCenter Japan
Boost container feature
Boost container feature
Akira Takahashi
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
Akira Takahashi
Boost tour 1.60.0
Boost tour 1.60.0
Akira Takahashi
3D CADと3Dプリンタ体験セミナー #1
3D CADと3Dプリンタ体験セミナー #1
Kou Ouchi
Unity MeshとColliderについて
Unity MeshとColliderについて
Self Norl
Boost apps ver1.0
Boost apps ver1.0
hosokawa atsushi
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
Ryuichi Kubuki
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
Destaque
(20)
Boostのあるプログラミング生活
Boostのあるプログラミング生活
ABC2015 Summer LT
ABC2015 Summer LT
Boost study meeting opening 4
Boost study meeting opening 4
CG基礎3 メタリンク
CG基礎3 メタリンク
boost::shared_ptr tutorial
boost::shared_ptr tutorial
boost - std - C#
boost - std - C#
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
Boost勉強会 #10 ディスカッションまとめ
Boost勉強会 #10 ディスカッションまとめ
Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI
ゲーム開発経営ゲーム
ゲーム開発経営ゲーム
3DCAD@VDI活用とCADデータ管理のロードマップ
3DCAD@VDI活用とCADデータ管理のロードマップ
Boost container feature
Boost container feature
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
Boost tour 1.60.0
Boost tour 1.60.0
3D CADと3Dプリンタ体験セミナー #1
3D CADと3Dプリンタ体験セミナー #1
Unity MeshとColliderについて
Unity MeshとColliderについて
Boost apps ver1.0
Boost apps ver1.0
ゲームアプリの数学@GREE GameDevelopers' Meetup
ゲームアプリの数学@GREE GameDevelopers' Meetup
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Semelhante a boost and c++11
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Tatsuya Tojima
Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
tokyorgirls
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
Masahiro NAKAYAMA
M5StickVで詰まった話
M5StickVで詰まった話
shts1
アルゴリズムを楽しく!@PiyogrammerConference
アルゴリズムを楽しく!@PiyogrammerConference
Kensuke Otsuki
Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)
洋史 東平
C++ template-primer
C++ template-primer
Kohsuke Yuasa
Runtime c++editing
Runtime c++editing
Seiya Ishibashi
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#
ssusera3d157
Why python
Why python
Mikio Kubo
Bjarne dont speaking
Bjarne dont speaking
Akira Takahashi
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Kenta Oono
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
洋史 東平
スタートアップツールチラ見せ
スタートアップツールチラ見せ
Hisatoshi Kikumoto
人それぞれの競プロとの向き合い方
人それぞれの競プロとの向き合い方
Kensuke Otsuki
Pythonで自動化した話1
Pythonで自動化した話1
Masato Fujitake
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
Retrieva inc.
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
鉄次 尾形
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
Knowledge & Experience
Semelhante a boost and c++11
(20)
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Python勉強会 2015-12-02
Python勉強会 2015-12-02
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
M5StickVで詰まった話
M5StickVで詰まった話
アルゴリズムを楽しく!@PiyogrammerConference
アルゴリズムを楽しく!@PiyogrammerConference
Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)
C++ template-primer
C++ template-primer
Runtime c++editing
Runtime c++editing
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#
Why python
Why python
Bjarne dont speaking
Bjarne dont speaking
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
スタートアップツールチラ見せ
スタートアップツールチラ見せ
人それぞれの競プロとの向き合い方
人それぞれの競プロとの向き合い方
Pythonで自動化した話1
Pythonで自動化した話1
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
boost and c++11
1.
Modern C++ Programming and New
C++ International Standard (C++11) ES松浦 twitter:@matu_ani 1 2011年11月30日水曜日
2.
自己紹介? 『ストラウストラップのプログラミング入門』 •やっとでました!! •2011年 8月 発売 •怒涛の1200ページ! •通称:鈍器w •8,190円
たけーっ! いや、いち監修メンバーでしかないんですが... つれー、3回通しで読んだからつれー。最後の2ヶ月で2回読んだもんな、つれー。原著もなー 2 2011年11月30日水曜日
3.
Agenda •今こそC++の魅力をお伝えしたい。 • 改めてC++の紹介をして、 • C++がサポートするプログラミングパラダイ ムについて、少しkwsk •
boostや新しい国際標準(通称C++11)につ いて軽く紹介 3 2011年11月30日水曜日
4.
Content • 歴史 • C++の使われどころ •
プログラミング・パラダイム • boost おさわりだけ • C++11ソフトタッチだけ 4 2011年11月30日水曜日
5.
歴史 history 5 2011年11月30日水曜日
6.
6 2011年11月30日水曜日
7.
Common History • • 1979:C with
Classes • • • 1998:初の国際標準規格(C++98) 1990:『The Annotated C++ Reference Manual (ARM)』 2003:マイナーバージョンアップ(C++03) 2011:初のメジャーバージョンアップ(C++11) 7 2011年11月30日水曜日
8.
Common History • • 1979:C with
Classes • • • 1998:初の国際標準規格(C++98) 1990:『The Annotated C++ Reference Manual (ARM)』 2003:マイナーバージョンアップ(C++03) 2011:初のメジャーバージョンアップ(C++11) C++98以降、boostという拡張ライブラリ 開発を通してC++は成長していた。 そして、C++11にて別言語?というくらい の大胆な進化を遂げた。 7 2011年11月30日水曜日
9.
C++の使われど ころ What is Product
that is using C++ 8 2011年11月30日水曜日
10.
The Programming Languages Beacon •
http://www.lextrait.com/vincent/ implementations.html 9 2011年11月30日水曜日
11.
The Programming Languages Beacon •
http://www.lextrait.com/vincent/ implementations.html OS/ブラウザ/GUI/オフィス/DBMS/コンパイ ラ/Game/JavaVM/Webプラットフォーム/ などなど、主要なソフトウェアプロダクトはC+ +で書かれている。 9 2011年11月30日水曜日
12.
Why C++ is
not popular? • • 『C++はなぜ人気がないのか』 • http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/ 20050215/156201/ 「日本でC++の評価が低いのは,こうしたソフトの大部分 が海外製であることの裏返しではないか,とまで思える」 10 2011年11月30日水曜日
13.
Why C++ is
not popular? • • 『C++はなぜ人気がないのか』 • http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/ 20050215/156201/ 「日本でC++の評価が低いのは,こうしたソフトの大部分 が海外製であることの裏返しではないか,とまで思える」 • 個人的には逆に、 • 「C++大好きなヤツが少ないから、こうした (大切な)ソフトの大部分が海外製」なんじゃ ね?とか思いますです、ハイ。 10 2011年11月30日水曜日
14.
C++ is むずい?? その全てをマスターしようとすると 一人の人間の限界を軽く超えるw(私感) しかしながら、 C++が備える言語機能、プログラミングパラダ イム、イディオムにより、安全で効率のよいプロ グラムを簡単に記述することが可能。 →
VBやSQLのような書き方が可能(EDSLとか言います) → ただし、ライブラリアンには高度なスキルが要求される → だからこそ?Geek達を惹きつけてやまない 11 2011年11月30日水曜日
15.
プログラミング・ パラダイム Programming Paradigm 12 2011年11月30日水曜日
16.
C++ has Multi Programming
Paradigm 13 2011年11月30日水曜日
17.
C++ has Multi Programming
Paradigm 手続き型 13 2011年11月30日水曜日
18.
C++ has Multi Programming
Paradigm 手続き型 オブジェクト指向 13 2011年11月30日水曜日
19.
C++ has Multi Programming
Paradigm 手続き型 オブジェクト指向 ジェネリック 13 2011年11月30日水曜日
20.
C++ has Multi Programming
Paradigm 手続き型 オブジェクト指向 ジェネリック メタプログラミング 13 2011年11月30日水曜日
21.
C++ has Multi Programming
Paradigm 手続き型 オブジェクト指向 ジェネリック メタプログラミング 関数型 13 2011年11月30日水曜日
22.
復習:ジェネリック C#やJavaも備えている機能ですが、、、?? List<T> lst ; ジェネリックは、単なる
Parameterized Type による汎用データ構造だけを指すわけ ではない。 14 2011年11月30日水曜日
23.
復習:ジェネリック C#やJavaも備えている機能ですが、、、?? List<T> lst ; ジェネリックは、単なる
Parameterized Type による汎用データ構造だけを指すわけ ではない。 真の意味はデータと処理の分離 である 14 2011年11月30日水曜日
24.
復習:オブジェクト指向 オブジェクト命! で、オブジェクトって なんだっけ? • データと処理(操作)が一緒になったもの •
データが主役で処理はそれに付随するもの • モノとその振る舞い:オブジェクト 15 2011年11月30日水曜日
25.
復習:オブジェクト指向 オブジェクト命! で、オブジェクトって なんだっけ? • データと処理(操作)が一緒になったもの •
データが主役で処理はそれに付随するもの • モノとその振る舞い:オブジェクト ソフトウェアではそれが常に真だろうか? つーか、現実世界でどーなの? 15 2011年11月30日水曜日
26.
例:探す template<typename Iterator, typename
Tp> Iterator find(Iterator first, Iterator last, const Tp& val) { while (first != last && !(*first == val)) ++first; return first; } • • • • 探す条件例 : a == b 要素をたどる: ++a 要素を参照する: *a; 上記さえ満たせばあらゆる型に適用可能 16 2011年11月30日水曜日
27.
例:探す template<typename Iterator, typename
Tp> Iterator find(Iterator first, Iterator last, const Tp& val) { while (first != last && !(*first == val)) ++first; return first; } • • • • 探す条件例 : a == b 要素をたどる: ++a 要素を参照する: *a; 上記さえ満たせばあらゆる型に適用可能 「探す」とは、ある条件に合致する要素を 見つけること。それはデータ型には依存し ない。# 「探す」の場合、データ構造には依存する事に注意 16 2011年11月30日水曜日
28.
いろいろ探す // svから"X"を探す vector<string> sv; ・・・ vector<string>::iterator
i = find(sv.begin(), sv.end(), "X"); // arから5を探す int ar[10]; ・・・ int* pi = find( ar, ar+10, 5); 17 2011年11月30日水曜日
29.
いろいろ探す // svから"X"を探す vector<string> sv; ・・・ vector<string>::iterator
i = find(sv.begin(), sv.end(), "X"); // arから5を探す int ar[10]; ・・・ int* pi = find( ar, ar+10, 5); 17 2011年11月30日水曜日
30.
いろいろ探す // svから"X"を探す vector<string> sv; ・・・ vector<string>::iterator
i = find(sv.begin(), sv.end(), "X"); // arから5を探す int ar[10]; ・・・ int* pi = find( ar, ar+10, 5); 17 2011年11月30日水曜日
31.
いろいろ探す // svから"X"を探す vector<string> sv; ・・・ vector<string>::iterator
i = find(sv.begin(), sv.end(), "X"); // arから5を探す int ar[10]; ・・・ int* pi = find( ar, ar+10, 5); findは一回だけ書けば使い回し可能 「探す」は、データ型が変わっても不変である。 17 2011年11月30日水曜日
32.
Generic Programing • それはC++98のSTLで示された。 •
オブジェクト指向に対するアンチテーゼ • • オブジェクト指向は少なくとも銀の弾ではない 事実、現代のプログラミングモデルは継承を積極的に は採用しない。むしろダック・タイピングを重視する 方向にある。 • 使いたいアルゴリズムを決めよ。様々な 型、データ構造を操作対象にできるよう、 それらをパラメータ化せよ。 • Bjame Stroustrup 18 2011年11月30日水曜日
33.
その他のパラダイム • メタプログラミング • プログラム内にプログラムを生成する(言語内言 語)。これは闇の世界に突入するので次の機会に でも • 関数型 • 並列プログラミングの発展と共に非常に重要なパ ラダイムとなった。
関数型自体は池田くんのプ レゼン参照。C++はラムダやfunction型でそれ をサポートする。今日はあとで、チョットだけ。 19 2011年11月30日水曜日
34.
boost C++98以降の、C++の進化 20 2011年11月30日水曜日
35.
boost • C++の先駆的な開発者のコミュニティ、及びそのコ ミュニティによって公開されているオープンソース ライブラリのことを指す。コミュニティとしての BoostはC++標準化委員会の委員により設立されて おり、現在でもその多くが構成員として留まってい る。このような経緯もあってBoostコミュニティは C++の標準化に対してかなりの影響力を有してい る。実際に標準化委員会の発表した「TR1」の 2/3以上がBoostライブラリを基にしている。 • Boostはテンプレートなどを活用して積極的にメタ プログラミングやジェネリックプログラミングを取 り入れていこうという傾向がある。 21 2011年11月30日水曜日
36.
matzのC++紹介 • 「Boost C++
ライブラリは古典的な C+ + 観からは想像もできないような総称型 プログラミングの世界を見せてくれてい ます。」 • 「オブジェクト指向機能もある総称型プ ログラミング言語。これがこれからの C ++ の立ち位置になるのかもしれません」 • http://jp.rubyist.net/magazine/?0018-Legwork 22 2011年11月30日水曜日
37.
一枚でboost (笑) • • • • • • • メモリ管理 • scoped_ptr, scoped_array,
shared_ptr, shared_array, weak_ptr 入出力 • asio, filesystem, iostreams, serialization 小道具 • foreach, scoped_exit, 関数型: • function, lambda, signals2 文字列系: • format, regex, tokenizer 並列・並行 • interprocess, thread 他に、数学、メタプログラミング、などなど、膨大なライブラリです • https://sites.google.com/site/boostjp/ 23 2011年11月30日水曜日
38.
C++11 2011年、新国際標準 24 2011年11月30日水曜日
39.
C++11 • ISO/IEC 14882:2011
は、2011年時 点で最新のプログラミング言語C++の ISO標準である。省略して C++11 と呼 ばれる。規格の策定中は2009年中の標 準化を目指していたため、C++0xとい う仮称で呼ばれていた。 • ISO/IEC 14882:2003 (C++03) に代 わるものとして、2011年8月12日に ISOによって承認された。 25 2011年11月30日水曜日
40.
抜粋 • • • • • • • • • • • • • 右辺値参照、Moveセマンティクス Range-base for lambda 型推論 nullptr decltype char16_t, char_32_t,
raw string literal constexpr 可変引数テンプレート メンバー初期化子 initializer_list ガベージコレクションと到達可能性ベースリーク検知の最小支援 スマートポインタ、thread、時間、などboostからたくさん 26 2011年11月30日水曜日
41.
nullptr これまで、NULLマクロ、0リテラル等でヌルポインタを 表現していた。しかし、NULLマクロと0リテラルは、テ ンプレートで使用するとint型に推論されてしまうという 問題ががが。→ nullリテラル導入されますた。 int* p
= nullptr; 27 2011年11月30日水曜日
42.
右辺値参照、Moveセマ ンティクス • 個人的にはC++11最大のトピック • ポインタ、参照に次ぐ、第三の文法、 &&
アンパサを二個 struct X{ X(std::vector<int>&& v){...} }; 28 2011年11月30日水曜日
43.
右辺値参照、Moveセマ ンティクス • 個人的にはC++11最大のトピック • ポインタ、参照に次ぐ、第三の文法、 &&
アンパサを二個 struct X{ X(std::vector<int>&& v){...} }; 説明すると何時間もかかるから このへんでやめとく(笑) 28 2011年11月30日水曜日
44.
Range-base for // コンテナ vector<int>
v={1,2,3}; for(int value : v) {cout << value << endl;} // 1 // 2 // 3 // 配列にも int ar[]={1,2,3}; for(int value : ar) {cout << value << endl;} // 1 // 2 // 3 29 2011年11月30日水曜日
45.
型推論 かなりうざかっった vector<int> v; vector<int>::iterator it
= v.begin(); これからは vector<int> v; auto it = begin(v); // v.begin(); と同じ •従来のauto は廃止された。 •動的言語の要求の多くは型推論で解決す る。# と言われている 30 2011年11月30日水曜日
46.
lambda vector<int> v; find_if(v.begin(), v.end(), [](int
x) -> bool { return x % 2 == 0; }); •ラムダの外の変数を参照可能 •コピーでもリファレンスでも •クロージャも書ける 31 2011年11月30日水曜日
47.
ラムダと関数型 // 関数型を明示 function<int(int,int)> mul
= [](int x,int y)->int{return x*y;}; mul(3,3) // 9 // 戻り値省略:これと同じ解釈 // auto add = [](int x, int y) ->decltype(x+y){return x+y;}; auto add = [](int x, int y){return x+y;}; add(3,3) // 6 // キャプチャとクロージャ int v = 100 auto add2 = [=](int x){return v+y;}; add2(3) // 103 最小のラムダ式 auto f = [](){}; 32 2011年11月30日水曜日
48.
関数型ふう遅延評価 double div( int
x, function<int()>& f){ if(x== 0) return NaN; return f()/x; // この時点ではじめてfが評価される } int x = ... auto result = div( x, [](){ int ret; /*重い処理*/ return ret; } ); 33 2011年11月30日水曜日
49.
Smart Pointer { shared_ptr<A> x(new
A); x->func(); // ポインタと同じように使える shared_ptr<A> y = x; // 代入(所有権) } // スコープから抜けると自動でdelete // make_sharedというヘルパ shared_ptr<A> x = make_shared<A>(); // make_sharedなら型推論も auto x = make_shared<A>(); scoped_ptr、week_ptrとかもあり。 auto_ptrはdeprecatedです。unique_ptr使ってね。 34 2011年11月30日水曜日
50.
まとめ • C++は世の中を支えている。(個人的 に一番面白いドメイン) • boostは基本使う。つか、使え •
C++11は主要ベンダーがサポートし始 めたけど、実用レベルは? • 組み込みもC++普通(話してない) • 並列プログラミングも大事(話してな い) 35 2011年11月30日水曜日
51.
おつかれさま!! 36 2011年11月30日水曜日
Baixar agora