使用元组和boost.fusion,有没有理由使用struct?

时间:2013-01-11 23:55:47

标签: c++ struct boost-fusion boost-tuples stdtuple

元组与结构类似(在此讨论:Boost::Tuples vs Structs for return values)。似乎唯一的优点是编写struct更方便,因为它更短,而且是键而不是数字。

还可以使用融合地图和结构来通过键Boost::Tuples vs Structs for return values进行访问来模拟结构。这是更多的写作。

似乎在表现上也没有任何惩罚。好吧,融合可能会更快,因为它使用视图。

所以使用结构的唯一原因是你不想写几行代码并保持代码可读吗?

2 个答案:

答案 0 :(得分:3)

  

所以使用结构的唯一原因是你不想写少数   更多代码行并保持代码可读?

此外,还有可扩展性/可维护性 - 在元组中放置/修改/删除任何其他位置参数将非常困难,但使用“键值”结构查找会很容易。

代码质量是性能,可读性,清晰度,可扩展性等的组合。忽略任何这些值将使您的代码变得更糟。这是一件坏事。

答案 1 :(得分:2)

结构可以是子类,可以包含方法,虚函数,枚举,typedef,子结构等。

元组只能代表struct最简单的功能,即一组值。它甚至不能给它们正确的名称。他们是一个非常差的替代品。