名著「Effective C++」の続編・・・なのか?C++11とC++14で標準になった新機能に関連するベターな選択肢を42の項目にして解説している。
どちらかというとC++をすでに使っている人がC++11/C++14に新たに慣れていくための本と思った方がいいかも。なので、C++をあまり使いこなせていない場合は、まずは「Effective C++」を理解するのが先だと思う。ちょうど第3版も出たとこみたいだし、やっぱりまずはこっちの方を大事にした方がいいと思う。
その上でだけど、確かに第1章から第3章まではわかる、第4章のスマートポインタもギリギリで許容できる、だけどそこから先があまり納得できない。右辺値参照とかムーブセマンティクスとかユニバーサル参照とか並行APIとか、確かに書いてあること自体は理解できなくはないんだけど、そこまでしてコスト削減したいんかと思わなくはない。がんばって覚えたところで今後の仕様変更でがらりと内容が変わってしまうんじゃないかと思ってしまう。今回の4章のスマートポインタの内容もこれまでの定石から少し変わってしまってるしね。
あとは、いくら理詰めでコード書けても、デバッグに苦しんだり、言語じゃないレベルのバグに泣いたり、なども心配。私のレベルが問題なのかもしれないけど、C++で入り組んだコードを書きすぎると、コンパイラがどういうマシン語を吐くのか全く想像できなくなってしまうのがなぁ。C++そのものを否定するほど強行には考えてないけど、時々見られる「なんでLinuxはC++で書かないの?」と主張する人たちはやっかいなバグをデバッグしたことがあるんだろうか、とかとか。
若干グチくさくなってしまったけど、そういうわけで、どうしてもC++の新しい機能を使いこなしていかないといけないようなC++にどっぷり浸かっている人向けの本といったところ。逆に、C++をあまり使っていないような人はまずは「EffectiveC++」をちゃんと読むべきだと思う。