More Effective C++: 35 New Ways to Improve Your Programs and Designs