On Sat, Jan 29, 2005 at 01:52:53PM -0500, Gennadiy Rozental wrote:
I prefer the symmetry of BOOST_CHECK_EQUAL(obj.fn(), true) BOOST_CHECK_EQUAL(obj.fn(), false) since, at different points I'm expecting true or false. I know there are alternatives.
Why not BOOST_CHECK( obj.fn() ); BOOST_CHECK( !obj.fn() );
I believe it's more natural.
Gennadiy
I was probably also influenced by a literal-minded reading of the useage suggestion "Prefer BOOST_CHECK_EQUAL to BOOST_CHECK"! As it turns out, I'm lucky I used the BOOST_CHECK_EQUAL form, because it exposed this bug. The returned value tested as true, but not == true. I was using an uninitialized (actually, post-destruction) value for the bool, and that's what led to the crazy value. I reported earlier that overwriting the bits in the bool variable did not change it. That report was mistaken; at least, when I try it now I am able to stick numeric values in the bool other than 0 or 1. I know using unitialized or free'd variables is a no-no, but I'm a bit surprised bool can take on such wacky values.