From 4df01e206b899cd29f56e715f0d8897c2b30b7a4 Mon Sep 17 00:00:00 2001
From: timsong-cpp
-Most uninitialized memory algorithms (
I believe that a careful reading of the existing wording already shows that "Equivalent to:" has +no effect of the sort claimed. But since that appears to be a common misinterpretation, +this wording adds a note to put it to rest.
+This wording is relative to
Modify
+++-4- Whenever the Effects element specifies that the semantics of some function `F` are +Equivalent to some code sequence, then the various elements are interpreted as follows. +If `F`'s semantics specifies any Constraints or Mandates elements, +then those requirements are logically imposed prior to the equivalent-to semantics. +Next, the semantics of the code sequence are determined by the Constraints, Mandates, +Constant When, Preconditions, Hardened preconditions, Effects, +Synchronization, Postconditions, Returns, Throws, Complexity, +Remarks, and Error conditions specified for the function invocations contained +in the code sequence. The value returned from `F` is specified by `F`'s Returns element, +or if `F` has no Returns element, a non-void return from `F` is specified by the return +statements (
+) in the code sequence. If `F`'s semantics contains +a Throws, Postconditions, or Complexity element, then that supersedes +any occurrences of that element in the code sequence. [Note ?: In particular, +if a function call in the code sequence fails to find a viable candidate, whether by reason +of a Constraints element on the called function or otherwise, that function call +(and possibly the entire code sequence) is ill-formed. There is no requirement that `F` itself +not participate in overload resolution in such cases. +— end note] +