Por que as funções de construção e destruição do std :: alocador são preteridas no c ++ 17?

A especificação do c ++ 17 descontinua oconstruct edestroy membros destd::allocator objeto. O grupo de trabalho forneceu justificativas para descontinuar outras funções membrosaqui, sob o título "Descontinuar os membros redundantes do std :: alocador".

No entanto, eles não mencionam especificamente por que esses dois membros foram preteridos ou qual é a recomendação para substituir essa funcionalidade. Estou assumindo que a implicação é usarstd::allocator_traits::construct em vez de.

Estou um pouco confuso sobre se implementarconstruct pode ainda ser necessário em alguns casos, embora devido aeste comentário sobrestd::allocator_traits::construct

Como essa função fornece o retorno automático ao posicionamento new, a função de membro construct () é um requisito opcional do Alocador desde o C ++ 11.

Para alocadores personalizados (por exemplo, memória alinhada à página usandomemalign), voltará ao posicionamentonew sempre produz o comportamento correto?

questionAnswers(2)

yourAnswerToTheQuestion