读书的时候,读Effective C++,当时还打趣的说,世界上的C++程序员分为两种,看过Effective C++的,和没有看过的。
最近才注意到,gcc的 -Weffc++编译选项能警告我们,如果代码没有遵循Effective C++的编码规范。
最近我们就发现一个:
struct uncopyable
{
uncopyable() {}
private:
uncopyable(uncopyable const&);
};
struct A: uncopyable {}; // -Weffc++ warning: base class ‘struct uncopyable’ has a non-virtual destructor
麻烦的是我们使用的大多数STL,BOOST 库都没有完全遵守Effective C++的规则。
而-Weffc++还没有聪明到能识别哪些警告是不需要的,从而造成我们编译代码时打印出了大量不必要的警告信息。
anyway, -Weffc++是个好东西,宁可错报,不要漏报。