質問

本当に行きたい:(C ++)

assert( num > 0, "The number must be greater than zero!");

C#XNAには、まさにこれを行うメソッドがあります:

Debug.Assert( num > 0, "The number must be greater than zero!");

「アサーションが失敗しました」だけでなく、ランタイムが意味のある完全なエラーを返すように、これを行う方法はありますか?エラー?

役に立ちましたか?

解決

ほとんどのアサーションでこれを使用できます:

assert(("The number must be greater than zero!",  num > 0));

他のヒント

通常、ランタイムは失敗した式を表示するため、次のようなことができます。

assert(num > 0 && "The number must be greater than zero!");

ロジックには影響しませんが、アサーション失敗メッセージには説明的な文字列が含まれます。

さらに、これはSTLまたはBoostを必要とせずに機能します。

assert(num> 0&&"数値はゼロより大きくなければなりません!");

BOOSTを使用すると、 httpで説明されているアサートを使用できます。 //www.boost.org/doc/libs/1_50_0/libs/utility/assert.html

#include <boost/assert.hpp>
/* ... */

BOOST_ASSERT_MSG( num > 0, "The number must be greater than zero!");

要求どおりに実行します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top