The documentation page for the PREDICATE testing macros gives quite different syntax for the WARN vs CHECK methods:

BOOST_WARN_PREDICATE( moo, (12)(i)(j) );
BOOST_CHECK_PREDICATE( std::not_equal_to< int>(), 2, (i,17) );

Since BOOST_WARN_PREDICATE and BOOST_CHECK_PREDICATE are only slight variants of one another, I'm confused as to why the syntax differs so much. Can anyone shed some light on this for me?

Thanks,
Alex