先日 logic_error について他の人に説明したところ
「assert() でいいじゃん。」と言われました。
とっさに反論できず。
「デバッグでしか有効でないのがassert()、
リリースでも有効なのがlogic_error()。」
とも思いましたが、
リリースでlogic_errorが有効でいいのか?とも思い、
どう使い分けていいのかわからなくなってきました。

std::logic_error() と assert() の使い分けについて、
もしくはそもそも全く別物だというのでしたらその論理について、
教えて戴ければ参考にしたいと思います。

以上です。