セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2024-11-14 現在

MWX_APIRET

戻り値クラス
    32bit型をラップしたAPI戻り値クラス。MSB(bit31)は失敗、成功のフラグ。bit0..30は戻り値を格納するために使用します。
    class MWX_APIRET {
    	uint32_t _code;
    public:
    	MWX_APIRET() : _code(0) {}
    	MWX_APIRET(bool b) {
    	  _code = b ? 0x80000000 : 0;
      }
    	MWX_APIRET(bool b, uint32_t val) {
    		_code = (b ? 0x80000000 : 0) + (val & 0x7fffffff);
    	}
    	inline bool is_success() const { return ((_code & 0x80000000) != 0); }
    	inline bool is_fail() const { return ((_code & 0x80000000) == 0); }
    	inline uint32_t get_value() const { return _code & 0x7fffffff; }
    	inline operator uint32_t() const { return get_value(); }
    	inline operator bool() const { return is_success(); }
    };

    コンストラクタ

    MWX_APIRET()
    MWX_APIRET(bool b)
    MWX_APIRET(bool b, uint32_t val)

    デフォルトコンストラクタはfalse,0の組み合わせで構築します。

    またbool型とuint32_t型をパラメータとする明示的な構築も可能です。

    bool型のコンストラクタを実装しているため、以下のようにtrue/falseを用いることができます。

    MWX_APIRET myfunc() {
      if (...) return true;
      else false;
    }

    メソッド

    is_success(), operator bool()

    inline bool is_success()
    inline operator bool()

    MSBに1がセットされていればtrueを返す。

    inline bool is_fail()

    MSBが0の場合にtrueを返す。

    inline uint32_t get_value()
    inline operator uint32_t()

    bit0..30の値部を取得する。