Returns:true if and only if evaluation of the call occurs
within the evaluation of an expression or conversion
that is manifestly constant-evaluated ([expr.const]).
constexprvoid f(unsignedchar*p, int n){if(std::is_constant_evaluated()){// should not be a constexpr if statementfor(int k =0; k<n; ++k) p[k]=0;
}else{
memset(p, 0, n); // not a core constant expression}}