如果我想参数化创建一个对象,我当然可以创建一个在特定类上调用new并传出指针的函数。我想知道是否可以跳过该步骤并将函数指针传递给new
运算符本身。
答案 0 :(得分:9)
boost :: lambda提供function wrappers for new
and delete
.这些可以用来轻松地将new
调用转换为函数对象。
答案 1 :(得分:2)
operator new
(以及其他版本)负责分配内存但不构造对象。实际上它的返回类型是void*
。构造对象的是新表达式,它是语言的一部分而不是函数。所以不可能形成指针或引用它;它与形成return
的引用一样毫无意义。