|
Boost : |
Subject: Re: [boost] [Boost.Test] Assertion changes in trunk? [WAS: Call for Review: Boost.Test documentation rewrite]
From: Mateusz Åoskot (mateusz_at_[hidden])
Date: 2014-01-22 07:14:18
On 22 January 2014 12:11, Mathias Gaunard <mathias.gaunard_at_[hidden]> wrote:
> On 22/01/14 11:52, Alexander Lamaison wrote:
>
>> BOOST_TEST(a <operator> b), however, cleverly parses a, b and <operator>
>> from the macro and does something like
>>
>> bool x = (a <operator> b)
>> BOOST_CHECK_MESSAGE_IMPL(x, "a must be <operator> to b", a, b);
>
> What sort of magic allows to parse a <operator> b, and how reliable is it in
> the real world?
BTW, I haven't looked into Boost.Test code, but this reminds me
expression capture and decomposition technique used in Catch library
https://github.com/philsquared/Catch/blob/master/include/internal/catch_capture.hpp
(not sure if this is the only file involved)
AFAICT, it works really nice in Catch.
Best regards,
-- Mateusz Åoskot, http://mateusz.loskot.net
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk