Effective C++: 55 Specific Ways to Improve Your Programs