aliceml_stdinc.h

#include "aliceml.h"

ソースコードを見る。

マクロ定義

#define ML_CHECKUPM(exp, result, message)
#define ML_CHECKUPVM(exp, message)
#define ML_CHECKUP(exp, result)   ML_CHECKUPM((exp), (result), (#exp))
 プログラムのエラーチェックは 1) デバッグ時はなるべく早くエラーを検出 2) リリース時はなるべくエラーを出さずにプログラムを動かしたい と、デバッグ・リリース時で求められるものが微妙に変わってきます。
#define ML_CHECKUPV(exp)   ML_CHECKUPVM((exp), (#exp))


マクロ定義

#define ML_CHECKUP ( exp,
result   )     ML_CHECKUPM((exp), (result), (#exp))

プログラムのエラーチェックは 1) デバッグ時はなるべく早くエラーを検出 2) リリース時はなるべくエラーを出さずにプログラムを動かしたい と、デバッグ・リリース時で求められるものが微妙に変わってきます。

そのためこのマクロでは、 デバッグ時は条件が偽ならすぐさまアサート、 リリース時には条件が偽でも関数からのリターンを行うのみ、 といった挙動をとります。

引数:
exp 真偽を判定するための条件です。これは1〜2回判定される 可能性があります。
result 条件が偽の場合の戻り値です。

#define ML_CHECKUPM ( exp,
result,
message   ) 

値:

do {                                                  \
        assert(exp);                                      \
        if (!(exp)) {                                     \
            ML_SetError("Failed '%s'.", (message));       \
            return (result);                              \
        }                                                 \
    } while(!ML_TRUE_VAR)

#define ML_CHECKUPV ( exp   )     ML_CHECKUPVM((exp), (#exp))

#define ML_CHECKUPVM ( exp,
message   ) 

値:

do {                                                  \
        assert(exp);                                      \
        if (!(exp)) {                                     \
            ML_SetError("Failed '%s'.", (message));       \
            return;                                       \
        }                                                 \
    } while(!ML_TRUE_VAR)


AliceMLに対してWed Jan 28 23:31:37 2009に生成されました。  doxygen 1.5.5