Effective Modern C++の見本が届いた。
なぜ私のもとに見本が送られてきたかというと、知人の岡田真太郎君が査読をしたのだという。
中を見てみたが、C++11の新機能のさわりの解説と、いくつかの落とし穴の照会と、落とし穴を避けるためのいくつかのお作法が含まれているようだ。
最後の方の並列APIの章は、なんだかまとまりが無いように感じた。threadのことは一切解説しないのにthreadはjoin可能な状態で放置するな(デストラクターでstd::terminateが走るため)というお作法だけ書くのはよくわからない。また、atomic操作のさわりだけ教えても意味がないように思う。
weak_ptrも何故紹介したのかわからない。weak_ptrとatomic操作は、素人が付け焼き刃で使える機能ではない。
この本の浅い解説から考えると、大半の読者はweak_ptrやatomicを使う必要に迫られることはまずないし、使う資格もないだろうと思う。このように浅く存在だけ解説すると、必要もないのに使ってみたくなる人間が増えはすまいか。心配になる。
とはいえ、考えてみると、この本は初心者を対象にしたものではない。この本を読むには、すでにC++をある程度実用的に書ける必要がある。かつ、Effective C++やHerb SutterのExceptional C++などのC++本を読んでいて、C++03時代のC++は知っていることを前提にしている。
また、そもそも、今C++を書く人間は、到底素人ではないからこれでいいのだという意見も聞いた。
Effective C++はScott Meyers
ReplyDeleteHerb SutterはExceptional C++だった。
ReplyDeletethreadは並列でなく並行では?
ReplyDelete