是否可以创建一个函数指针来指向函数的`new`操作符/构造函数?

时间:2011-07-07 01:35:43

标签: c++ new-operator function-pointers boost-bind

如果我想参数化创建一个对象,我当然可以创建一个在特定类上调用new并传出指针的函数。我想知道是否可以跳过该步骤并将函数指针传递给new运算符本身。

2 个答案:

答案 0 :(得分:9)

boost :: lambda提供function wrappers for new and delete.这些可以用来轻松地将new调用转换为函数对象。

答案 1 :(得分:2)

operator new(以及其他版本)负责分配内存但不构造对象。实际上它的返回类型是void*。构造对象的是新表达式,它是语言的一部分而不是函数。所以不可能形成指针或引用它;它与形成return的引用一样毫无意义。