C++运算符+=中的自动返回类型推导

问题描述 投票:0回答:0

我在下面编写了用于重载运算符+=的C++代码,该代码接受作为引用的p1,然后返回p1。

template<typename T, typename T2> 
inline auto operator+=(std::pair<T, T2>& p1, std::pair<T, T2> const& p2)
{
  auto& [x1, y1] = p1;
  auto& [x2, y2] = p2; 

  x1 += x2;
  y1 += y2;

  return p1;
}

我希望运算符+=返回一个引用,又名“std::pair&”类型--

我的问题是,是否需要返回 decltype(auto),或者编译器是否推断出 auto 在这种情况下必须是引用,因为正在返回引用 p1 。 -- 根据我的理解,“auto”通常不会推断出参考。

我不清楚运算符+=返回右值而不是引用是否有意义。

c++ c++14 operator-overloading
© www.soinside.com 2019 - 2024. All rights reserved.