私はマルチプラットフォームプロジェクトに取り組んでおり、一部のプラットフォームでは機能が無効になっています。これらの機能のインターフェイスで、私が行う一般的なことは次のようなものです。
bool Foo::bar() const {
// disabled
abort();
}
GCC / LLVMは、非void関数が値を返すことを要求しません(警告を出すだけです)。この場合、私が呼び出すとabort()
、警告を出さないほど賢いです(関数はとにかく戻ることはないため)。
Visual C ++ 2010を同じように動作させる方法(コンパイルフラグ?)があるので、Windowsビルドを壊し続けませんか?中止後はいつでも値を返すことができることはわかっていますが、他のプラットフォームで作業しているときは、通常それを忘れており、エラーを出さないという動作の方が適切なようです。