Altogether a fair book, pragmatic, recent enough, clear and simple
in its presentation, useful.
I don't know what to say to explain my lack of enthusiasm: I may have
prejudices against some kind of bread and butter coding style, too
classical to my taste, although it would be unfair to say it "C
style".
A few chapters are there for completeness more than because the
authors had something to say (e.g. documentation). As for the topic of
reuse, I cannot help thinking that they miss the meat --despite valid
and pragmatic points and bits of information.
A few pieces of new information.
3.4.4 Use of Friend, p 62
Example of the problem with friendship not being inherited.
4.1 Efficiency and Reusability, p 75
Most programmers consider efficiency an essential property of reusability.
6.3 Environmental Names, p 151
Recommends hardcoding directories in the include directives.
8.2.2 Interface Hierarchies, p 182
Very close to virtual mixins indeed, but not seeing the
implementation from sibling aspect.
12.1 The Static Initialization Problem, p 263
A good wrap-up -- short of multithreading aspects (other pointers:
Effective C++, item 47 and
errata,
John Vlissides' June 1996 C++ Report article).
Especially the 12.1.6 Double Construction technique was new
to me.
12.2 The Principle of Localized Cost, p 275
Short and clear presentation.