in a statement such as: if(expr) assert(a); else assert(b); the previous definition of assert would fail to compile, as the else would be dangling. with a ternary expression, this construct works fine.