Following that line, it's never exactly been syntactic sugar. When initializing a const local, you can use the ternary operator on the right hand side of the assignment, but you can't get the same effect using if (short of writing a new function). Similarly, C++ lets you use the ternary operator for the left hand side of an assignment, (a ? b : c) = 42; although you could use an if for this pretty easily.
Wow I had no idea you could use it on the LHS. TIL.
A TIL of my own: it seems not to be allowed in C.
It works if you take the address of the b and c and then dereference. I assume this works without those in C++ because of references.
In a funny turn of events, in C++17 there is no ?: shorthand for 'constexpr if' .