IBASE

BREWC++をCで模倣している。
特に便利だと思うのは、IBASE_Release()。
IFILE_Release()とか、ICAMERA_Release()とかしなくても、全部IBASE_Release()で解放出来る。
で、そいつをNULLチェックを行って解放するマクロを組むと、

#define SAFE_SHELL_RELEASE( p )         \
    do{                                 \
        if( p != NULL ){                \
            IBASE_Release( (IBase*)p ); \
            p = NULL;                   \
        }                               \
    }while( FALSE )

こうなります。


最近C++じゃなくてCばっかり触ってるせいで、スマートポインタとかそういう発想が薄れてきてる気がする(;´Д`)