C++:创建启动间相关仿函数列表

标签 c++ pointers functor

我创建了类似仿函数列表(函数指针)的东西。然后我将它们以二进制形式写入文件。问题是,仿函数 - 是一个简单的函数指针。 (如果我错了,请纠正我。)但是函数的地址在每次运行时都不同。

那么,问题是 - 有什么方法可以创建始终相关的仿函数列表吗?

最佳答案

我建议使用某种配对数据结构,一侧是标识符,另一侧是函数指针。如果有足够多的东西,比如 map :

typedef void (*fptr_t)(); // or whatever your function pointer type is
std::map<std::string, fptr_t> fptr_map;

您的应用程序应在首次需要时构建此 map 并缓存结果。然后,当您将函数指针“写入”到文件时,您应该写入唯一的 std::string 键。当应用程序“读取”函数指针时,它将读入键并将它们映射到该程序调用的函数指针。

关于C++:创建启动间相关仿函数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365900/

相关文章:

c - 关于数组和指针的存储

c - C中字符串数组的分配空间

c++ - 传递将模板参数作为参数默认为 NULL 的 boost::function

c++ - 使用 C++ 拆分 "[General Setting]"格式的节字符串

c++ - 不能在同一个文件中包含 wdm.h 和 ntifs.h

c++ - 为一些抽象的 Windows 服务器创建 C++ 客户端应用程序 - 如何管理与服务器速度的 TCP 连接?

c++ - std::list of pointers 在条目删除时变得无效

haskell - 将 `Functor` 类泛化为 `MultiFunctor`?

haskell - 如何使用带有 Fix 类型的 Functor 实例

c++ - 不能将一个类的方法定义为另一个类的友元