const引用的std :: tuple?

时间:2012-01-07 21:15:27

标签: c++ c++11 tuples pass-by-reference

我有一个曾经被称为

的函数
void func(const A& v0, const A& v1, const A& v2);

为清楚起见,我想把这些论点作为一个三元组来传递。如果要避免任何额外的开销,那么正确的方法是什么?以下是最有效的吗?:

void func(std::tuple<const A&> v);

1 个答案:

答案 0 :(得分:0)

如果它们不是多态的并且经常一起使用(并且,我假设,创建),那么为什么不将它们打包成值元组,std::tuple<A, A, A>或命名结构。你可以通过const引用传递它。此解决方案没有性能开销,实际上可能更快。

实际上,由于所有三个元素属于同一类型,为什么不使用三个元素的数组A[3]?元组最适合异类型。