Можно ли создать указатель функции на оператор / конструктор функции new? - PullRequest
5 голосов
/ 07 июля 2011

Если бы я захотел параметризовать создание объекта, я бы, конечно, мог создать функцию, которая вызывала new для определенного класса и передавала указатель.Мне интересно, можно ли пропустить этот шаг и передать указатель на функцию самому оператору new.

Ответы [ 2 ]

9 голосов
/ 07 июля 2011

boost :: lambda предоставляет упаковщики функций для new и delete. Они могут использоваться для простого преобразования вызова new в объект функции.

2 голосов
/ 07 июля 2011

operator new (как и другие разновидности) заботится о распределении памяти, но не создает объекты.На самом деле его тип возвращаемого значения void*.Что создает объект - это новое выражение , которое является частью языка, а не функцией.Поэтому невозможно сформировать указатель или ссылку на него;это так же бессмысленно, как формирование ссылки на return.

...