C++ Logo

STD-PROPOSALS

Advanced search

Subject: [std-proposals] C++ Function argument constraints for argument sanity checking
From: Jim Smith (jim45002_at_[hidden])
Date: 2019-08-01 11:59:54


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
{
   ...
}

Possibly throwing an "argument constraint" exception for run-time
evaluations and failing to compile or compiler warning for compile-time
evaluations.

--Jim Smith



STD-PROPOSALS list run by herb.sutter at gmail.com

Standard Proposals Archives on Google Groups