
On Thu, 6 Jul 2006 13:29:58 +0300, "Peter Dimov" <pdimov@mmltd.net> wrote:
Gennaro Prota wrote:
#define BOOST_ASSERT(expr) \ ( \ (void)sizeof boost::detail::assert_ \ ::valid_assert_expression(expr) \ , assert(expr) \ ) /**/
Sorry, I thought you had read my earlier post about this. I found some invocations of BOOST_ASSERT which don't use an expression with int type. When BOOST_ASSERT falls back to the standard assert macro it may work or not, depending on what the underlying C library does. See the last part of this message: <http://lists.boost.org/Archives/boost/2006/06/106721.php> Frequently the C library adds a 0 != in front of (expr), uses a ?: operator, or ||, so that everything works as expected (and, in fact, C99 extends the specification to allow any scalar expression --as that's easy to deal with for the library). But that's not guaranteed. -- [ Gennaro Prota, C++ developer for hire ] [ resume: available on request ]