Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Until after C++11, ternary was the only way to use "if then" in constexpr functions. So it has slightly more use from a C++ point of view.


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' .




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: