我想知道两件事。
1.搬家std::tuple
值得吗?例如,std::tuple<int, int, int>
我们会得到什么吗?它会比复制或通过引用传递更快吗?
2.在下面给出的例子中,这两者之间有什么真正的区别吗?
void print_tuple(const std::tuple<int&&, int&&, int&&> position)
{
int x = std::get<0>(position);
int y = std::get<1>(position);
int z = std::get<2>(position);
std::cout << "x: " << x << " y: " << y << " z: " << z << std::endl;
}
void print_tuple(const std::tuple<int, int, int>&& position)
{
int x = std::get<0>(position);
int y = std::get<1>(position);
int z = std::get<2>(position);
std::cout << "x: " << x << " y: " << y << " z: " << z << std::endl;
}
int main()
{
print_tuple(std::forward_as_tuple(1, 2, 3));
print_tuple(std::move(std::tuple<int, int, int>(4, 5, 6)));
//...
}