On 7/19/17 11:41 AM, Jack Stouffer wrote:
On Wednesday, 19 July 2017 at 13:30:56 UTC, sontung wrote:
Thoughts on this sort of feature?

To be frank, I don't think that helping the programmer reduce the line count in their program by one line is worth further complicating the language.

It's 3 lines. One for the extra scope, one for the declaration, and one for the closing scope.

Hm... just had an idea:

auto propertyCheck(string condition, T)(T val)
{
    static struct Result {
       T _value;
       opCast(B: bool)() {
          mixin("return _value " ~ condition ~ ";");
       }
       alias _value this;
    }
    return Result(val);
}

if(auto x = someFunc().propertyCheck!" >= 0")
{
   // use x as if it was the result of someFunc()
}

Has some drawbacks, for instance you may want to use the true booleanness of whatever T is inside the function.

-Steve

Reply via email to