In addition to the elements specified in [structure.specifications],
descriptions of function semantics may also contain a Requires: element
to denote the preconditions for calling a function.
Violation of any preconditions specified in a function's Requires: element
results in undefined behavior
unless the function's Throws: element
specifies throwing an exception when the precondition is violated.