c++ - 来自 "new"的 std::function 并输入

标签 c++ c++14

假设我有类 Class。
现在我想创建一个 std::function 对象,它创建一个 Class 类型的新对象,使用默认构造函数并返回它。
是否有一些非常简单的方法可以将 new 与类型绑定(bind)并完成它?
还是我必须创建一个函数/lambda 并绑定(bind)到它?

std::function<Class*()> getCreateFunction()
{
  return std::bind(operator new) // somehow tell new what to allocate ?
}

我确实知道如何用 lambda 解决这个问题。如果我没有意识到 bind 和 new 将如何协同工作,我只是好奇。

最佳答案

std::bind将可调用实体作为参数。new Class()expression .不能“调用”表达式。要使表达式“可调用”,可以将其包装在 lambda 中。但是你不需要std::bind了。

关于c++ - 来自 "new"的 std::function 并输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64593829/

相关文章:

c++ - is_transparent 在部分 key 方面的合法使用

c++ - constexpr std::optional 可能的实现

c++ - 多线程插件架构中的共享单侧可变状态

c++ - 方法返回相同的指针地址?

c++ - 如何解析未解析的符号?

c++ - 在 c/c++ 开发中更改选项时,Netbeans 会重新生成 Makefile

c++ - 如何使用new在C++中声明2d数组?

c++ - C++/Qt 编写的程序中的 RTF/doc/docx 文本提取

c++ - 可调用项,转发,右值和线程

C++14 警告 : too many template headers for variable (should be 0)