Por que o novo operador tem permissão para retornar * anulado a todo tipo de ponteiro?

No C ++, não é permitido atribuir um ponteiro nulo * a qualquer ponteiro integral sem uma conversão explícita. Isso requer o uso de um static_cast.

Mas o que há com isso:

int* iptr = new int;

Sei que o novo operador está definido da seguinte forma:

void* operator new(size_t);

Como o C ++ lida com isso? Eu sei que esta é uma pergunta básica, mas importante. Eu também sei que o código de baixo nível deve usar void. Mas como essa tarefa pode ser legal? iptr é um ponteiro para int e new retorna um ponteiro para void, que deve acionar uma mensagem como "erro: conversão inválida de 'void *' para 'int *' [-permissive]".

questionAnswers(2)

yourAnswerToTheQuestion