} while( Catch::isTrue( false && static_cast<bool>( !!(expr) ) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
// The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&.
m_lastAssertionInfo=AssertionInfo(std::string(),m_lastAssertionInfo.lineInfo,"{Unknown expression after the reported line}",m_lastAssertionInfo.resultDisposition);