Interesting!  This assert_and_assume() seems strictly better than vanilla assert() for any predicates that don&#x27;t have side effects.  But I guess you have to be sure that the compiler is able to deduce that there aren&#x27;t side effects and feels comfortable optimizing away the predicate in release mode.