现在都用RAII,实际上可以从一个函数体的任何位置提前return掉,也不会导致leak。
现在习惯这种写法了(VC++要打开4165编译警告,防止在返回类型不是bool的函数中误用这个宏):
#pragma warning(1 : 4165)
#define CHECK(x) \
{ \
static_assert(std::is_same<decltype(x), bool>::value); \
\
if (!(x)) \
return false; \
}
bool SomeFunc() {
...
CHECK(SomeAction1());
...
CHECK(SomeAction2());
...
CHECK(SomeAction3());
return true;
}
--
修改:z16166 FROM 111.199.145.*
FROM 111.199.145.*