forked from boostorg/unordered
std::allocator::construct uses a C-style cast to void pointer, so it can accept const pointers, but allocator_traits::construct uses a static_cast by default, so const pointers don't work. This means the implementation needs to cast away const when constructing members of a std::pair. This wouldn't happen if piecewise construction was used, as the members could be constructed normally.