購入(2020-04-02)

Modern C++ Programming Cookbookのkindle版をポチったヽ(´ー`)ノ

知識的なのはだいたい揃ったとして、もっとこうイディオムとかコピペで使えそうなcookbookが欲しいなぁ、と思い探して見つけた本。

サンプルを見た所インデントが結構ずれてるが読めないほどでも無いのでまぁいいか、と購入。

感想はおいおい。C++の本(11以降)、これで三冊目だよ。 私のようなプログラマが三冊も本読まないといけない言語ってどうなの?(^_^;)

感想、いまいち

目次を眺めつつ興味のありそうな所をチラチラ読んで、たぶん半分くらいは読んだ。 感想としてはいまいち。

まず、ほとんどが単なるSTLのサンプルみたいなので、思ったよりも使えるコードが無い。 STLのサンプルとしては逆に提示されている内容が中途半端で、これならリファレンス的な構成で例がついてるstroustrup本のPart4の方が使いやすい。

自分が期待してたのは良くあるタスクを実現する短くて使いまわしやすいレシピ集のような物だった。出てくるトピックはどのくらい実際に必要になるか、という頻度順で選んで欲しい。

だがこの本はSTLの機能をダラダラと紹介している感じになってしまっているので、例えばあまり使わないSTLの機能とかにも結構紙面を割いてる。そしてSTLに無いが良くあるタスク、みたいのの例が凄く少ない。 そしてSTLの中でも説明が必要そうな物を中心に選ぶので、結果として良く使う平凡なコレクション周りの説明はあまり充実してなくて、variantとかの項目の解説が多い。 結果として普段使う物をちょっと調べるのには向かない。

またparallel_mapの実装例とかで、future使ったのとthread使ったのの2つの例があったりする。どう違うか見比べるのはfutureの勉強にはなるかもしれないが、cookbookに期待するのはそういうのじゃなくて一番オススメの実装一つでいい。それよりももっとほかの例をいろいろ入れてくれ、と思った。

あと提示の仕方が見づらい。コード例を短くバン、と載せてくれる方が見やすいのだが、3〜4行に区切って提示して解説を挟む。ばっと見て分からない。ちょっと読まないといけない。いまいち。

という事でいまいちなのだが、期待してるようなレシピ集的な内容も全く無い訳では無い(1/4くらいか?)ので、まぁ買って損したというほどでも無いかな、と思った。 例えばカスタムのイテレータの実装例とかは「そうそう、まさにこの辺が欲しかったのよ」という内容。 という事で、あまり一冊の本という価値は期待せず、 目次を眺めて見たい項目がいくつかあったらそこだけ読むつもりで買う、金ならあるぜ、みたいな態度だとそんな後悔は無いかな。

あと、C++17の例が結構ある(1/3くらい?)ので、17にはこんな機能あるのかぁ、と目次を眺めてたまに気になったのを見るという使い方も出来る。 17の本ってあんま無いので、結構思い切ったな、と思う。

例えばファイル周りは17のfilesystemの話しか無い。だから11や14で良くあるタスクのコードが欲しいな、という時に全く役に立たないが、そうやって割り切った分17の世界でどうするのか、という説明にはちゃんとなってる。 自分の今回のプロジェクトはせいぜい14って所なので自分の役には立たなかったが、この時期に17をちゃんと前提として割り切った判断は好感が持てる。 八方美人で中身が薄いよりはこっちの方がいい。

という事で、いまいちだったが二度と開かないというほどでも無い。 オススメはしないが以上の説明を見てまぁ我慢して買うか、と思った人は買っても良いとは思う。