我正在编写一个执行 IPC 的实现。用户拨打电话,我将所有这些参数传递给其他进程。
我已经为此类功能编写了一个基于逻辑的自动代码生成器,其工作原理如下:
- 获取所有参数并将它们放入结构中。
- 添加 IPC 所需的其他信息。将此结构的大小和指针传递给 POSIX 消息队列。从这个地址读取数据,直到指定的大小,被读取并发送到其他进程。
- 解构结构以获取参数。
- 使用这些参数调用实际函数。
当我只有普通的旧数据类型时,这工作得很好。但是当函数参数是非 POD 时,我的逻辑失败了,因为:
- 在非 POD 类型的情况下,我无法真正说出总数据的大小 [消息队列需要]
- 某些类可能包含动态增加的实体,例如向量。
有人可以告诉我如何处理这种情况吗?