c++ - 是否可以编写一个将自身作为类型返回的 c++ std::function?
问题描述
让我们从一个简单的函数 typedef 开始:
typedef std::function<uint32_t(SomeStruct *)> HandlerFunction;
这里我们有一个函数,它返回一个 uint32_t 并接受一个指向 SomeStruct 的指针。
我想做的是修改这个函数,让它返回一个自身的类型,如下所示:
typedef std::function<HandlerFunction(SomeStruct *)> HandlerFunction;
显然这不会编译,但它代表了我试图实现的最终目标。
解决方案
我不明白这是如何实现的std::function
。
但是,此代码(改用仿函数)在 Visual Studio 2017 中编译和运行:
struct SomeStruct {};
struct Func
{
Func operator()(SomeStruct*) { return *this; }
};
int main()
{
Func f;
Func f2 = f(nullptr);
}
推荐阅读
- android - Firebase 使用哪种协议与移动应用程序通信?
- flutter - FLUTTER:如何为应用制作持久性背景图片
- laravel - 在具有远程搜索功能的 Laravel Livewire 中使用 SELECT2 插件
- asp.net - 如何在 MassTransit 中将 MessageData 存储库配置为服务?
- azure - 如何在powershell的foreach循环中嵌套另一个cmdlet
- nginx - 蓝/绿部署的零停机 nginx 动态重新加载
- python - 如何在 PYTHONHUNTER 环境变量中包含多个模块
- vb.net - 尝试在子项目任务上使用 LINQ 时出现 MissingMemberException
- react-hooks - 我们可以在 textarea react 中使用模式吗?
- mysql - 左连接 SQL 表