CrossFramework Library
|
実行時アサートを記述する。
#include <XBase/BuiltInTypes.hpp>
#include <XBase/Console.hpp>
#include <XBase/PointerCheck.hpp>
#include <XBase/RuntimeError.hpp>
#include <XBase/ShortString.hpp>
#include <XBase/ToShortString.hpp>
#include <XBase/ValueInRange.hpp>
ネームスペース | |
namespace | XBase |
XLibraryの基本となるクラス・関数・マクロ群を定義する名前空間。 | |
マクロ定義 | |
実行時アサート | |
#define | XBASE_ASSERT_MSG(aCond, aMsg) XBASE_RUNTIME_ASSERT( aCond , "%s" , aMsg ) |
メッセージ付きアサート。指定の条件式がtrueであることをチェックする。 | |
#define | XBASE_ASSERT_MSGFMT(aCond, aFormat,...) XBASE_RUNTIME_ASSERT( aCond , aFormat , __VA_ARGS__ ) |
printfフォーマットのメッセージ付きアサート。指定の条件式がtrueであることをチェックする。 | |
#define | XBASE_ASSERT(aCond) XBASE_ASSERT_MSG( aCond , #aCond ) |
指定の条件式がtrueであることをチェックする。 | |
#define | XBASE_SHOULD_NULL_ASSERT(aVal) |
NULLであるべき値をチェックする。 | |
#define | XBASE_NOT_NULL_ASSERT(aVal) XBASE_ASSERT_MSG( (aVal)!=0 , "Value is Null\n" ) |
NULLじゃない値をさしているかチェックする。 | |
#define | XBASE_POINTER_ASSERT(aVal) do { if ( !::XBase::PointerCheck::IsValid( aVal ) ) { XBASE_INVALID_VALUE_ERROR( reinterpret_cast< ::XBase::pword_t >( aVal ) ); } } while(false) |
ポインタとして有効な値であることをチェックする。 | |
#define | XBASE_NOT_REACH_ASSERT_MSGFMT(aFormat,...) XBASE_ASSERT_MSGFMT( false , aFormat , __VA_ARGS__ ) |
到達したらエラーにする。 | |
#define | XBASE_NOT_REACH_ASSERT_MSG(aMsg) XBASE_ASSERT_MSG( false , aMsg ) |
#define | XBASE_NOT_REACH_ASSERT() XBASE_NOT_REACH_ASSERT_MSG( "Should nod reach here.\n" ) |
到達したらエラーにする。 | |
#define | XBASE_INVALID_VALUE_ERROR(aVal) |
不正な値としてその値をコンソールにダンプしつつエラーにする。 | |
#define | XBASE_EQUALS_ASSERT(aVal1, aVal2) |
2つの値が等しいことをチェックする。 | |
#define | XBASE_NOT_EQUALS_ASSERT(aVal1, aVal2) |
2つの値が等しくないことをチェックする。 | |
#define | XBASE_TEST(aCond) do{}while(false) |
テストコマンドを実行する。 | |
#define | XBASE_RANGE_ASSERT_EMAX(aVal, aMaxVal) XBASE_RANGE_ASSERT_CORE_FVM( XBASE_IS_VALUE_IN_RANGE_EMAX , aVal , aMaxVal ) |
aVal <= aMaxValであることをチェックする。 | |
#define | XBASE_RANGE_ASSERT_EMIN(aMinVal, aVal) XBASE_RANGE_ASSERT_CORE_FMV( XBASE_IS_VALUE_IN_RANGE_EMIN , aMinVal , aVal ) |
aVal <= aMaxValであることをチェックする。 | |
#define | XBASE_RANGE_ASSERT_EMIN_EMAX(aMinVal, aVal, aMaxVal) XBASE_RANGE_ASSERT_CORE_FMVM( XBASE_IS_VALUE_IN_RANGE_EMIN_EMAX , aMinVal , aVal , aMaxVal ) |
aMinVal <= aVal <= aMaxValであることをチェックする。 | |
#define | XBASE_RANGE_ASSERT_EMIN_MAX(aMinVal, aVal, aMaxVal) XBASE_RANGE_ASSERT_CORE_FMVM( XBASE_IS_VALUE_IN_RANGE_EMIN_MAX , aMinVal , aVal , aMaxVal ) |
aMinVal <= aVal < aMaxValであることをチェックする。 | |
#define | XBASE_RANGE_ASSERT_MAX(aVal, aMaxVal) XBASE_RANGE_ASSERT_CORE_FVM( XBASE_IS_VALUE_IN_RANGE_MAX , aVal , aMaxVal ) |
aVal < aMaxValであることをチェックする。 | |
#define | XBASE_RANGE_ASSERT_MIN(aMinVal, aVal) XBASE_RANGE_ASSERT_CORE_FMV( XBASE_IS_VALUE_IN_RANGE_MIN , aMinVal , aVal ) |
aMinVal < aVal であることをチェックする。 | |
#define | XBASE_RANGE_ASSERT_MIN_EMAX(aMinVal, aVal, aMaxVal) XBASE_RANGE_ASSERT_CORE_FMVM( XBASE_IS_VALUE_IN_RANGE_MIN_EMAX , aMinVal , aVal , aMaxVal ) |
aMinVal < aVal <= aMaxValであることをチェックする。 | |
#define | XBASE_ENUM_ASSERT(aEnumType, aEnumValue) XBASE_RANGE_ASSERT_EMIN_EMAX( int( aEnumType##_MIN ) , int( aEnumValue ) , int( aEnumType##_MAX ) ) |
aEnumValueがMIN <= aEnumValue <= MAXであることをチェックする。 |