For the purposes of determining
whether an expression 
E is a core constant expression,
the evaluation of the body of a member function of 
std::allocator<T>
as defined in 
[allocator.members], where 
T is a literal type,
is ignored
.Similarly, the evaluation of the body of
std::construct_at or
std::ranges::construct_at
is considered to include only
the initialization of the 
T object
if the first argument (of type 
T*) points
to storage allocated with 
std::allocator<T> or
to an object whose lifetime began within the evaluation of 
E.