[Adopted at the June, 2016 meeting.]
Consider the following example:
struct A { void *p; constexpr A(): p(this) {} }; constexpr A a; // well-formed constexpr A b = A(); // ?
The declaration of a seems well-formed because the address of a is constant.
The declaration of b, however, seems to depend on whether copy elision is performed. If it is, the declaration is the equivalent of a; if not, however, this creates a temporary and initializes p to the address of that temporary, making the initialization non-constant and the declaration ill-formed.
It does not seem desirable for the well-formedness of the program to depend on whether the implementation performs an optional copy elision.