我有一个函数,过去被称为
void func(const A& v0, const A& v1, const A& v2);
为了清楚起见,我想将参数作为3元组传递。如果要避免任何额外的开销,正确的方法是什么?以下会是最有效的吗?:
void func(std::tuple<const A&> v);
如果它们不是多态的,并且经常一起使用(我认为是创建的),那么为什么不将它们打包到值元组std::tuple<A, A, A>
或命名结构中呢。您可以通过const引用来传递它。此解决方案没有性能开销,而且实际上可能更快。
实际上,既然这三个元素都是同一类型的,为什么不使用三个元素的数组A[3]
呢?元组最适合异构类型。