Как компилятор позволяет пользовательскому оператору новый - PullRequest
0 голосов
/ 05 апреля 2020

Заголовочный файл определяет оператор новой и похожих версий. Также упоминается, что эти функции вставляются в каждый файл перевода.

void* operator new (std::size_t size);

Стандарт допускает перегрузку этих функций. Чтобы перегрузка была успешной, должна быть некоторая разница в подписи. Я сомневаюсь, как стандарт или компилятор позволяет пользователю перегружать оператор new с той же сигнатурой. Ниже моя глобальная перегрузка оператора new.

void* operator new (std::size_t size) {
    std::cout << "My operator new size: " << size << std::endl;
    return malloc(size);
}
...