【问题标题】:Check if two instances of my class are equal using templates使用模板检查我的类的两个实例是否相等
【发布时间】:2017-10-15 02:20:07
【问题描述】:

我想检查我的类的两个实例是否相等(在 C++ 中),类中没有指针。我知道我需要覆盖 = 运算符并手动检查所有字段。我知道那个解决方案。问题是我在班上有大约 100 名成员,我想为许多类似规模的班级做这件事。

我的问题是是否有办法将其模板化?这可能吗?我可以使用速度。

【问题讨论】:

  • (您想覆盖== 运算符。)这些类的相似程度如何?可以考虑继承。也许重新考虑你的方法,因为 100 名成员通常是可以避免的(并非总是如此)。
  • C++ 不支持反射。您将需要一些预处理器辅助解决方案,例如参见stackoverflow.com/questions/19059157/…
  • 如果成员都是POD,可以使用memcmp。否则就没有这么大的课程。也许是设计上的改变。
  • 为什么这个标记为velocity

标签: c++ c++11 templates visual-c++ velocity


【解决方案1】:

您可以使用std::tuple。明显的缺点是您需要通过std::get<size_t>() 引用您的成员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2014-04-30
    相关资源
    最近更新 更多