C++ Logo

std-proposals

Advanced search

Re: C++ Function argument constraints for argument sanity checking

From: Tae Lim Kook <uruwi_at_[hidden]>
Date: Thu, 01 Aug 2019 17:01:55 +0000
On Thursday, August 1, 2019 12:59 PM, Jim Smith via Std-Proposals <std-proposals_at_[hidden]> wrote:

> Functions sometimes check the sanity of the data passed to them. This could require a number of checks and error handing. For example:
>
> Foo& Foo::operator=(const Foo& obj)
> {
> if(&obj == this)
> return *this
> ...
> }
>
> A more convenient way of handling this situation would be to allow constraints on arguments and let the compiler check or add code to handle the condition.
>
> For example:
>
> Foo& Foo::operator=(const Foo& obj { &obj != this } ) <-- Argument constraint in braces
> {
> ...
> }

How is this different from the contracts proposal? Would you be able to have overloads based on this?

-- T

Received on 2019-08-01 12:04:04