<分区>
长期以来,我的直觉和实践一直是尽可能避免 out 参数。我相信一个函数应该有一个逻辑目的,并且通常意味着一种返回类型(不返回多个东西)。有时,返回多个东西是可取的(例如 std::map::insert)。我知道这可以作为一对/元组或作为输出参数来完成;使用哪一个的争论对我来说不太重要。
首选输出参数或返回值的概念、设计或性能原因是什么?
<分区>
长期以来,我的直觉和实践一直是尽可能避免 out 参数。我相信一个函数应该有一个逻辑目的,并且通常意味着一种返回类型(不返回多个东西)。有时,返回多个东西是可取的(例如 std::map::insert)。我知道这可以作为一对/元组或作为输出参数来完成;使用哪一个的争论对我来说不太重要。
首选输出参数或返回值的概念、设计或性能原因是什么?
最佳答案
你是对的,实际上并不需要 out 参数,因为 RVO 使按值返回变得可行,即使是大型类型也是如此。必须返回多个东西要么是一种代码味道,要么可以合理地打包在一个结构中。
我想说唯一剩下的原因是一致性,这很重要。如果该类已经有数十个通过参数返回的方法,请坚持使用它(除非您有自由重构该死的东西:)。
关于c++ - 参数过时了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18982782/