gpt4 book ai didi

c++ - C++ 中的轻量级反射

转载 作者:行者123 更新时间:2023-11-28 03:08:43 28 4
gpt4 key购买 nike

我有一个分布式 C++ 应用程序,一台机器希望另一台机器对特定对象调用特定函数。发送者知道对象的类型和它在接收者上的指针。我可以将成员函数指针发送到接收器,但我不确定如何发送类型以启用将 this 指针转换为适当的类型。

理想情况下,映射可以静态完成(有没有办法使用 boost::mpl 和 boost::variant)?我知道可以在编译时调用的类型集(两台机器也运行完全相同的二进制文件)。此外,函数的签名是固定的(假设它返回 void 并始终采用 int,无论类型如何)。

最佳答案

如评论中所述,您可以为此使用 RPC ( remote procedure call)。

我们的想法是定义一个协议(protocol),双方同意如何在网络上表示调用、参数和返回值。

根据您的环境,您可以选择现有的 RPC 库(请参阅链接的 wiki 文章中的列表),或者在使用现有序列化和通信模块的同时自行编写一些简单的东西(例如,请参阅 google protobufs 或 boost asio ).

关于c++ - C++ 中的轻量级反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037882/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com