我正在尝试使用结构化绑定(bind)更新传递给函数的变量:
#include <iostream>
#include <tuple>
#include <utility>
std::pair<int, double> func(double y)
{
return {1, 1.3+y};
}
int main() {
double y = 1.0;
auto [x, y2] = func(y);
y = y2;
std::cout << "x = " << x << ", y = " << y << '\n';
return 0;
}
是否可以避免额外的分配 y = y2
并使用类似的东西[auto x, y] = func(y); // this does not work
或者std::tie(auto x, y) = func(y); // this does not work
最佳答案
第三种选择:
decltype(func(y).first) x;
std::tie(x, y) = func(y);
关于c++ - 仅对具有结构化绑定(bind)的一个变量使用 auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64861092/