cpp/utility/launder

Provenance fence with respect to. Returns a pointer to the same memory that points to, but where the referent object is assumed to have a distinct lifetime and dynamic type.

Formally, given
 * the pointer represents the address  of a byte in memory
 * an object is located at the address
 * is within its lifetime
 * the type of is the same as, ignoring cv-qualifiers at every level
 * every byte that would be reachable through the result is reachable through p (bytes are reachable through a pointer that points to an object if those bytes are within the storage of an object  that is pointer-interconvertible with, or within the immediately enclosing array of which  is an element).

Then returns a value of type  that points to the object. Otherwise, the behavior is undefined.

The program is ill-formed if is a function type or (possibly cv-qualified).

may be used in a core constant expression if and only if the (converted) value of its argument may be used in place of the function invocation. In other words, does not relax restrictions in constant evaluation.