Effective C++ 読書会 vol.11 に参加
参加しました。
Effective C++ 読書会 vol.11 大阪〜第7章特別編〜
http://partake.in/events/fafca87c-78fd-416f-abbb-ae4346ec15ad
- 日時:2012年11月23日(金) 10:30〜18:00
- 場所:グリー株式会社 大阪オフィス(梅田)
- 公式Twitterタグ:#efcpp読書会
- 当日のつぶやきまとめ:http://togetter.com/li/413900
- Ustream:http://www.ustream.tv/channel/effectivec-読書会
Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- 作者: スコット・メイヤーズ,小林健一郎
- 出版社/メーカー: ピアソン・エデュケーション
- 発売日: 2006/04/29
- メディア: 大型本
- 購入: 29人 クリック: 411回
- この商品を含むブログ (186件) を見る
参加した理由としては、日本有数のC++エキスパートの方が集まる場でしたし、個人的にあまりtemplateを使ったプログラミングは出来ていないのでまずはその基礎知識を得る事でした。
開会
18人位が参加。
[twitter:@HappyLuckyAkira]さんや[twitter:@cpp_akira]さんが両隣。更にその隣に[twitter:@suikaba]さん、[twitter:@decimalbloat]さんがいらっしゃってとても濃いエリアでした。
Effective C++ 読書 第1部
templateに関する項。
-
- 41項 - 暗黙のインタフェースとコンパイル時ポリモーフィズムを理解しよう
- signatureではなくsyntaxで定義する事によって実装が楽になる
- boostのドキュメントではsignatureで表現するのではなく、満たすべき式で書かれているものがある。
- C++の規格書はconceptの影響を受けた書き方に変わっている
- 42項 - typenemeの2つの意味を理解しよう
- C++11ではtemplateの外でもtypenameが付けられるようになった(ビルドエラーにならないようになった)
- 質問 by [twitter:@cpp_akira]さん
- どうしてエイリアステンプレートでtempleteな型を宣言する時もtypenameが必要なのか?
- http://ideone.com/h5SUVS
- 43項 - テンプレート化された基底クラス内の名前へのアクセス方法を知る
- ビルドエラーになったらとりあえず「this->」付けておけ。
- 質問
- typenameする方法とthis->とでどちらを使っているか?
- 回答
- 使い易い方を使えば?
- 41項 - 暗黙のインタフェースとコンパイル時ポリモーフィズムを理解しよう
お昼休み
以下のメンバーでお昼。
カレー&パスタ+サラダ&ドリンクバーのお店で、カレーは直ぐ出てきたけどパスタは出てくるのが遅くてちょっと焦った。
雑談の中でプログラミング魔導書のvol.3の話題が出ていて発売が楽しみです。
セッション
[twitter:@cpp_akira]さん
-
- テンプレート入門
- どんな場面で使うか
- GitHubにサンプルコード有り
- テンプレート技法
- あまり使えないもの
- 式テンプレート
- CTRD
- あまり使えないもの
- 未来
- 質疑応答
- テンプレート学ぶのにお薦めの本は?
[twitter:@dasyprocta]さん
-
- テンプレートを使ってみたい
個人的にはテンプレートの使い所について段階的に説明されていたのは良かった。ただ声が聞こえにくかったのと延々と解説が続いたので力尽きて寝てしまった・・・。
Effective C++ 読書 第2部
-
- 44項 - パラメータに依存しないコードはテンプレートから外に出そう
- More C++ IdeomsのThin Template
- http://ja.wikibooks.org/wiki/More_C%2B%2B_Idioms/%E8%96%84%E3%81%84%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%28Thin_Template%29
- バイナリサイズ等が問題になった時にこれをやれば良い。通常はあまり気にしなくても良い。
- 45項 - 「すべての互換型」を受け取る為にメンバ関数テンプレートを使おう
- 暗黙の型変換に対応したテンプレートの作成手法
- std::is_covertible - 暗黙の型変換が可能かどうかを判定する標準メタ関数
- SFINAEはオーバーロードからそのテンプレートを除外するのに利用する
- 46項 - 型変換をさせたいのなら、メンバでない関数をクラステンプレートの中で定義しよう
- P.239 operator* の戻り値にconstが付いているのは、C++11ではmoveの利用を阻害するので最適化に影響があるかも知れない。
- 質問
- テンプレートの実装をcppファイルで行うか?
- 回答
- テンプレート特殊化により特定の型でのみテンプレートを許可するような場合にはそうする。逆を言えばそういった意図が無ければそんな事はしない。
- 何故 operator* はfriend関数なのか
- ADL経由でしか参照できない関数とする為。
- ADL(Argument-dependent name lookup):関数の呼び出し時の引数に渡したデータ型で呼び出される関数を探索する仕組み
- ADL経由でしか参照できない関数とする為。
- 47項 - 型の情報に関してはtraitsクラスを使おう
- 48項 - TMPを意識しよう
- 44項 - パラメータに依存しないコードはテンプレートから外に出そう
質疑応答
閉会
イベントに参加しての感想を一言ずつ話して終了。
懇親会
不参加
参加しての感想等
もうかれこれ10年位C++やっていますが、未だにテンプレートを使いこなせていないのと、独学では(自分で勝手に決めた)限界があったので、とても勉強になりました。少しテンプレートの理解が深まったので、書籍の写経なりで技術を磨いていかないとなぁ。
あと会場のグリーさんはとても福利厚生が充実していましたね。個人的には職場にあったタスクボードの内容も気になりました。
それから勉強会とは無関係ですがこの本が良さそうだった。
- 作者: Robin Williams,吉川典秀
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/11/19
- メディア: 単行本(ソフトカバー)
- 購入: 58人 クリック: 1,019回
- この商品を含むブログ (102件) を見る