- Amazon.co.jp ・本 (318ページ)
- / ISBN・EAN: 9784797376685
作品紹介・あらすじ
メタプログラミング、ポリシーベース/コンセプトベースの設計手法、SFINAE、Type Erasureなど、<br>テンプレートの機能を使ったプログラム共通化の仕組みをわかりやすく解説。最新規格C++11に対応。
感想・レビュー・書評
-
現代のC++になくてはならない機能テンプレート。
しかしこの本で述べられているのは、プログラマーが普通に使う範囲の話ではなく、テンプレートクラスライブラリを自分で書く人でもなければ使わなそうなレベルの話である。
序盤のテンプレートの基礎の復習を除けば何のためにそんなものを用意するの?という話が続く。
これに、最近のC++で導入されたこれこれの機能を組み合わせるとこういう動作をする様になるので、それをこういう意図に使ってこういう機能と組み合わせると、こういうクラスの時にこういう動作をするので〜という話が延々続く。
結局のところ、STLやBoostの様なテンプレートクラスライブラリを作ろうと思ったら、ユーザがどんなクラスをそれらと組み合わせても破綻させないためには、テンプレートクラスの側から組み合わされたユーザ定義クラスの側の情報を抜く機構が必要なのだろう。
ほとんどの普通のC++プログラマーには不要な本である。
本書を読んで思い出したが、STL出始めの頃はなんだかiteratorを使ってloopを回さなきゃいけな様な気がして読みにくく書きにくいコードを何度も書いたが、iteratorが表に出るというのはやはり間違いで、要するに当時lambda式とfor_each()が欠けていたために普通のプログラマーまでiteratorを触る羽目になっていたんだな…詳細をみるコメント0件をすべて表示 -
会社で勉強会のネタにこの本が選定されたので読んでみた。
数年前に第一版を読んだ時にも書いたが、、、後半の変態っぷりがもうね。(褒め言葉)
書籍は非常に丁寧に書かれているので、なんとかついては行けたが、勉強会で人に説明するところまで昇華できているかというと、、、、かなり心もとない。。。
SFINAE くらいまでならまぁ説明できる自信はそこそこあるけど、Type Erasure とか CRTP とか無理ゲーじゃね?
-
請求記号 007.64/E 66
-
C++11 のテンプレート機能に特化して、基本的な使い方から、高度な活用法までを解説しています。
テンプレート関連の本は他にもありますが、本書は比較的読みやすい部類だと思います。(それでも結構、辛いところもありますが…)。
文法解説のような基本的なところから始まって、各種テクニックを1つ1つ詳細に解説しています。標準ライブラリや Boost での利用例も取り上げられており、各テクニックの実用性の高さが示されています。
初版では、C++03 の範疇で出来ることに限られていましたが、第2版になって C++11 が対象となりました。C++11 で様々な新機能が加わったことに対応して、大幅な加筆・修正がなされているので、初版を持っている人にも購入するだけの価値があります。
テンプレート関連の技法には、積極的に学習しない限りは想像も付かないような手法が多数あります。平均的なレベルのプログラマが想像も付かないような手法を、現実のプログラムの中で使いすぎるのは問題がありますが、取り入れる価値のある手法は幾つもありますから、学習しないのは勿体ないと思います。
比較的読みやすい本書で、じっくり学んでみてはいかがでしょうか? -
読みやすく面白い。
前半は役に立つし、知っておくべき知識だと思う。
でも、後半はSTL級のライブラリでも作らない限り、必要ないテクニックな気がする。少なくとも今の自分にはレベルが高すぎる。