The answer is a language attorney. All references to N3797 .
7.1.5 / 5 status:
For a non-template, non-default function constexpr or a non-template non-default, which does not inherit the constexpr constructor, if there are no argument values, so the function or constructor call can be an estimated subexpression of the main constant expression (5.19), the program is poorly formed; no diagnostics required.
Passing to 5.19, we see:
The conditional expression e is an expression of the basic constant if the estimate e , following the rules of the abstract machine (1.9), does not evaluate one of the following expressions:
So, no: the program containing the constexpr function with new or delete is poorly formed in it, no diagnostics are required. (I would be surprised, however, if some semi-decent compiler could not diagnose new or delete instances in the constexpr function, necessarily or not.)
source share