/permissive or not, ternary operators have some bugs in all compilers. My favorite MSVC one:
https://developercommunity.visualstudio.com/t/wrong-type-of-...
https://developercommunity.visualstudio.com/t/wrong-type-of-...
The compiler ends up omitting most of the rest of the function's assembly, which breaks things as much as you'd expect. (For bonus fun, our ternary expression was deep under about four layers of macro.)
"return (cond)? result : throw;"
and it crashed the compiler. (It was an older version of MSVC.)