C++ Logo

std-proposals

Advanced search

Re: [std-proposals] return if

From: Sebastian Wittmeier <wittmeier_at_[hidden]>
Date: Mon, 12 Jan 2026 18:01:44 +0100
Why would     return if ! InRange(a); even work?   It should probably be (with parantheses around the expression)     return if !(InRange(a)); vs.     return if (!InRange(a));   the upper one would return false, if inRange is true the lower one would return true, if inRange is false     the other combinations are:     return if (InRange(a)); and     return if !(!InRange(a));   return true, if inRange is true and return false, if inRange is false     I think what confuses most, is that the ! is on the right of the if. Better write     return if ();     return not if (); or even better     return false if ();     Why we are even talking about returning a bool with that construct.     Let's just implement it with try? and P2561. Not sure, if I did it correctly.   // call it like this, one can also call evaluate() returnif() evaluate(something(param)).try?; // returns if something returns something trueish   // define evaluate like this template<class T> std::expected<bool, T> evaluate(T t) {     if (t)         return std::unexpected(t);     else         return false; }    

Received on 2026-01-12 17:17:35