On Tue, July 24, 2007 14:41, Pavel Syomin wrote:
Hello!
I don't sure, that I choose right mail list for my ofer... So, don't beat me much... :) I often use such macro for testing function parameters:
#define THROW_INVALID_ARGUMENT_IF_FAIL(expression) \ do { \ using std::invalid_argument; \ using std::string; \ \ if(!(expression)) \ throw invalid_argument(string(BOOST_CURRENT_FUNCTION) + \ " : Assertion '" #expression "' failed"); \ } while(false)
I think, that this macro is very useful and can be part of
.
Hi! Just a question: why do you need the do-while loop if this thing iterates anyway only once? You can define a new scope without do and while: #define THROW_INVALID_ARGUMENT_IF_FAIL(expression) \ { \ using std::invalid_argument; \ using std::string; \ \ if(!(expression)) \ throw invalid_argument(string(BOOST_CURRENT_FUNCTION) + \ " : Assertion '" #expression "' failed"); \ } My opinion would be to integrate the kind of macro (if it is really required) to boost::exception code if this is going to be accepted in the review (which will hopefully start soon). With Kind Regards, Ovanes