News for hackers. Stuff that matters.
Re:Branch predictor: How many “if”s are too many? by PixelOfDeath on Thursday May 06, 2021 @11:45AM (#27065005)
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.
Re:Branch predictor: How many “if”s are too many? by MaxBarraclough on Thursday May 06, 2021 @12:14PM (#27065438)
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.
Re:Branch predictor: How many “if”s are too many? by andromeduck on Thursday May 06, 2021 @02:08PM (#27067077)
Wow I had no idea you could use it on the LHS. TIL.
Re:Branch predictor: How many “if”s are too many? by MaxBarraclough on Thursday May 06, 2021 @06:39PM (#27069833)
A TIL of my own: it seems not to be allowed in C.
Re:Branch predictor: How many “if”s are too many? by saagarjha on Friday May 07, 2021 @07:54AM (#27074895)
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.
Re:Branch predictor: How many “if”s are too many? by gpderetta on Thursday May 06, 2021 @12:11PM (#27065386)
In a funny turn of events, in C++17 there is no ?: shorthand for 'constexpr if' .