C++ 从函数返回两个变量,为什么首选 auto?

C++ Returning two variables from function, why is auto prefered?

我正在尝试学习几种从函数中 return 多个变量的方法,并以这种方式遇到了这种情况。我想知道在这种情况下您可以用什么替换 auto 。至少对我来说 auto 是令人困惑的,现在我在一定程度上避免了它。

auto twoInteger() {
  struct bo{
   int m_three{};
   int m_four{};
  };
  return bo{10, 20};
}


int main() {
  auto [value1, value2] = twoInteger();
  std::cout << value1 << value2 << std::endl;
}

方法有很多种。但最简单的方法是给出参数作为参考。

auto twoInteger(int &num1,int &num2) {
  struct bo{
   int m_three{};
   int m_four{};
  };
    num1 = 40;num2 = 20;
}


int main() {
    int value1;
    int value2;
    twoInteger(value1,value2);

    std::cout << value1<<' '<<value2<< std::endl;
}

如果需要更多方法。 this article