構成 |
struct | XBase::Console |
| コンソールに関する関数を定義する空間。 [詳細]
|
class | XBase::IConsoleCallback |
| コンソール用コールバックインターフェースクラス。 [詳細]
|
class | XBase::IRuntimeErrorCallback |
| 実行時エラー用コールバックインターフェースクラス。 [詳細]
|
struct | XBase::PointerCheck |
| ポインタについて調べる処理を扱う空間。 [詳細]
|
struct | XBase::RuntimeError |
| 実行時エラーを扱う空間。 [詳細]
|
マクロ定義 |
#define | XBASE_ENUM_IS_INVALID(aEnumType, aEnumValue) ( aEnumValue < aEnumType##_MIN || aEnumType##_MAX < aEnumValue ) |
| Enumの値がMIN未満 or MAXより大きいことをチェックするマクロ。
|
#define | XBASE_ENUM_IS_VALID(aEnumType, aEnumValue) ( aEnumType##_MIN <= aEnumValue && aEnumValue <= aEnumType##_MAX ) |
| Enumの値がMIN以上MAX以下であることをチェックするマクロ。
|
コンソール出力 |
#define | XBASE_COUT(...) XBASE_COUT_CORE( __VA_ARGS__ ) |
| printfフォーマットの文字列をコンソールに書き込む。
|
#define | XBASE_COUT_TIME() do{}while(false) |
| 現在時刻をコンソールに書き込む。
|
#define | XBASE_COUT_END_LINE() do{}while(false) |
| 改行コードをコンソールに書き込む。
|
#define | XBASE_COUTLINE(...) |
| printfフォーマットの文字列をコンソールに改行書き込みする。
|
#define | XBASE_COUT_WITH_TIME(...) |
| 現在時間と共にprintfフォーマットの文字列をコンソールに書き込む。
|
#define | XBASE_COUTLINE_WITH_TIME(...) |
| 現在時間と共にprintfフォーマットの文字列をコンソールに改行書き込みする。
|
#define | XBASE_CHECKPOINT() XBASE_COUTLINE_WITH_TIME( "%s at %lu\n" , __FILE__ , __LINE__ ) |
| 現在時刻と共にファイル名と行番号をコンソールに改行書き込みする。
|
#define | XBASE_DUMP(aVal) XBASE_COUTLINE_WITH_TIME( "%s : %s\n" , #aVal , XBASE_TO_SHORT_STRING( aVal ).readPtr() ) |
| 現在時刻と共に変数の名前・値をコンソールに改行書き込みする。
|
0除算チェック |
#define | XBASE_DIV_ASSIGN(lhs, rhs) |
| lhs /= rhs, operator /=の0除算チェック。
|
#define | XBASE_DIV(aLHS, aRHS) ( aRHS != 0 ? ( aLHS / aRHS ) : ::XBase::DivideCheck::Error( aLHS ) ) |
| lhs / rhsの0除算チェック。
|
関数属性 |
#define | XBASE_OVERRIDE(...) __VA_ARGS__ |
| オーバーライドチェック。
|
#define | XBASE_FINAL(...) __VA_ARGS__ |
| オーバーライド禁止チェック。
|
実行時アサート |
#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であることをチェックする。
|
コンパイル時アサート |
#define | XBASE_STATIC_ASSERT_MSG(aCond, aMsg) |
| メッセージ付きコンパイル時アサート。
|
#define | XBASE_STATIC_ASSERT(aCond) XBASE_STATIC_ASSERT_MSG( aCond , "Static assert failure." ) |
| コンパイル時アサート。
|
#define | XBASE_STATIC_ASSERT_FAILURE XBASE_STATIC_ASSERT_MSG( false ) |
| コンパイルを止めるアサート。
|