リリースビルドでQ_ASSERTのセマンティクスについて明確なステートメントを見つけることができません。アサーションチェックがない場合、アサートされた式はまったく評価されますか?Q_ASSERTリリースビルドのセマンティクス
は、すべての潜在的なQtの下
Q_ASSERT(do_something_report_false_if_failed());
ウィルdo_something_report_false_if_failed()
ラン構成を構築し、次のコードを考えてみましょうか? (もう少し冗長で読みにくくもかかわらず)の代わりにこれを行うには、それはより安全になります:
bool is_ok = do_something_report_false_if_failed();
Q_ASSERT(is_ok)
後者のアプローチは失敗が少ない冗長でアサート欠点を持っていますが、おそらくそれは、より明確に文があることを示しています実行された?
これは、通常の 'assert'と' NDEBUG'マクロと全く同じ状況です。 –