【问题标题】:with tuples and boost.fusion, is there any reason to use struct?使用元组和 boost.fusion,有什么理由使用结构吗?
【发布时间】:2013-01-11 23:55:46
【问题描述】:

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

还可以使用 fusion map 和 structs 来通过 key Boost::Tuples vs Structs for return values 访问来模拟结构。写的有点多。

似乎也没有性能损失。好吧,融合可能会更快,因为它使用视图。

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

【问题讨论】:

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


    【解决方案1】:

    所以使用结构的唯一原因是如果你不想写几个 更多的代码行并保持代码的可读性?

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

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

    【讨论】:

    【解决方案2】:

    结构可以被子类化,并且可以包含方法、虚函数、枚举、typedef、子结构等等。

    元组只能表示struct 最微不足道的功能,即值的集合。它甚至不能给他们正确的名字。他们是一个非常糟糕的替代品。

    【讨论】:

    • 我应该注意到我对存储数据感兴趣,而不是将其用作对象或类。你也可以在元组中使用 std::function
    • 好吧,如果您的问题是“元组是否可以存储值”,当然可以。但是结构远不止这些,元组不支持结构可以做的大部分其他事情。
    猜你喜欢
    • 1970-01-01
    • 2018-06-15
    • 2013-10-18
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 2015-07-24
    相关资源
    最近更新 更多