未使用的输出参数参考的一行解决方案

Gia*_*iac 8 c++ parameters parameter-passing

我使用一个函数,它使用2个参考参数来返回值,这个值只有一个让我感兴趣.有没有一种方法可以在一行中完成.

我将用代码解释自己

功能代码

void Limits (double& min, double &max)
{
    min = MIN;
    max = MAX;
}
Run Code Online (Sandbox Code Playgroud)

使用该功能

double min;
double unused;

Limits(min, unused);

// using myDouble but not unused
Run Code Online (Sandbox Code Playgroud)

我想写的是类似的东西

double min;

Limits(min, double());
Run Code Online (Sandbox Code Playgroud)

没有事先正确声明对象,我找不到方法.有优雅的解决方案吗?

我无法修改功能.

gla*_*ank 4

我不确定为什么必须声明一个额外的变量是一个问题。无论如何,如果您无法修改该函数,请制作一个包装器:

void MyLimits(double& min) {
  double unused;
  Limits(min, unused);
}
Run Code Online (Sandbox Code Playgroud)

或者你可以做一些像这样的时髦的事情:

double min;

Limits(min, *std::unique_ptr<double>(new double));
Run Code Online (Sandbox Code Playgroud)