C++ Logo


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

--Jim Smith

STD-PROPOSALS list run by std-proposals-owner@lists.isocpp.org

Standard Proposals Archives on Google Groups