IBASE
BREWはC++を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ばっかり触ってるせいで、スマートポインタとかそういう発想が薄れてきてる気がする(;´Д`)