gpt4 book ai didi

c++ - 生成一组检查消息内容的方法

转载 作者:行者123 更新时间:2023-11-30 04:37:47 25 4
gpt4 key购买 nike

在我的单元测试框架中,对于一些消息(它们只是 POD 结构),我需要一种方法来比较两个这样的消息(结构),以确定所有字段是否相等。例如,如果我有一条消息:

struct SExampleMessage
{
int someField;
int someField2;
char someField3[10];
};

我有一个方法,它接受两个指向 SExampleMessage 的指针,并在两个结构中的所有字段都相等时返回 true:

bool compareExampleMessage(SExampleMessage* expectedMsg,
SExampleMessage* receivedMsg);

(指针当然可以是 void* 并转换为正确的类型)

我的问题是 - 有什么方法可以避免在保持类型安全和 C++ 领域中编写此样板代码吗?所以不是:

  1. 一种简单比较消息的二进制内容的通用方法(获取两个 void 指针和结构的大小)

  2. 一些分析结构头文件并生成比较方法的外部脚本

是否有任何元编程巫术可以做类似的事情?可能没有,因为那时有人会很容易地用它实现 C++ 反射,但值得一试 :)。

最佳答案

如果结构是普通的 POD(没有指针内部结构),那么您不需要函数,并且执行相同类型的 var A == var B 就可以了。

在 C++0x 中,他们甚至放宽了 POD 规则以允许具有构造函数和其他东西的类来消除这种样板文件的负担

http://www2.research.att.com/~bs/C++0xFAQ.html#PODs

关于c++ - 生成一组检查消息内容的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3618540/

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