gpt4 book ai didi

c++ - 用于 pod 的重载运算符 ==

转载 作者:IT王子 更新时间:2023-10-28 23:34:57 26 4
gpt4 key购买 nike

我正在编写一些具有高级接口(interface)的低级代码,并且觉得需要比较运算符来对普通旧数据类型(如 FILETIME 结构)进行单元测试,但由于 C++ 甚至不提供成员比较,所以我写了这个:

template <typename Type>
std::enable_if_t<std::is_pod<Type>::value, bool> operator==(const Type& a,
const Type& b) {
return std::memcmp(&a, &b, sizeof(Type)) == 0;
}

所以我的问题是,这是一个好方法还是有一些隐藏的恶魔会在以后的开发周期中给我带来麻烦,但它现在有点工作。

最佳答案

C++14 可用吗?如果是这样,请考虑 PFR库,将结构变成元组

关于c++ - 用于 pod 的重载运算符 ==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50667027/

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