NULL const char* を使用した std::string の不適切な初期化を検出できる g++ オプションはありますか?
私はいくつかの int フィールドを std::string フィールドに変換する過程にありました。
struct Foo
{
int id;
Foo() : id(0) {}
};
...になって:
struct Foo
{
std::string id;
Foo() : id(0) {} //oooops!
};
0 による不正な 'id' 初期化を完全に見落としており、g++ は警告をまったく表示しませんでした。このエラーは実行時に検出されました (std::string コンストラクターが例外をスローしました) が、コンパイル時にそのようなものを検出したいと思っています。何か方法はありますか?