Boost logo

Boost Users :

Subject: Re: [Boost-users] Metaprogramming Question
From: John M. Dlugosz (mpbecey7gu_at_[hidden])
Date: 2012-02-09 01:47:28


On 2/9/2012 12:21 AM, Jeremiah Willcock wrote:
> Would it be reasonable for your use case to have MY_FANCY_ASSERT be:
>
> #define MY_FANCY_ASSERT(cond, str) \
> if (cond) {} else format(str) % __FILE__ % __LINE__
>
> or similar? It would restrict where you could use it, but would be simple and guarantee
> the properties you want.

Actually, that's not at all too unreasonable. I had shied away from making a macro that
"eats" the following arguments in a non-expression way, on general principles. But I see
that what you have doesn't leave a dangling-else problem, and I suppose people won't
notice that it's at all funny.

The auto-supplied arguments (FILE, LINE, etc. and the plain text of "cond" are not
considered for in the format string. So the statement will be somewhat more complex, and
of course take care of sending the resulting string on its way.

I like the idea. Thanks. I'll think about that some more.

—John


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net