- 1
#define RETURN_OR_THROW_EXCEPTION_IF_ERROR(Expression, Exception) if(!Expression) throw Exception; return Expression
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1011
#define RETURN_OR_THROW_EXCEPTION_IF_ERROR(Expression, Exception) if(!Expression) throw Exception; return Expression
О как нынче ассерты стали называть.
assert совершенно для другого предназначен. Он только констатирует наличие ошибок программирования в режиме отладочной компиляции.
>или не вызывает return.
>или
у тебя явные проблемы с логикой.
двойное вычисление Expression, вот что печально
А return туда клеить - какое-то безумие.
+100500
"macros that affect control flow is a _very_ bad idea"
http://lxr.linux.no/linux+v3.1/Documentation/CodingStyle#L624
Зачем тебе столько говна, говно?