如何将float值传递给以double为参考值的函数

use*_*663 5 c++ pass-by-reference

我有一个函数,其原型如下所示:

void example (double &var);
Run Code Online (Sandbox Code Playgroud)

但是,我的问题是我可能需要调用具有一些浮点值的函数.例如

float temp=10.1;

example(temp)
Run Code Online (Sandbox Code Playgroud)

如果我这样做我的代码不编译,可能是因为将float值传递给double引用变量.

我想避免为double和float编写重载函数.

有人可以建议一个更清洁/更好的方法来实现这个?

函数基本上是截断函数,截断给定的输入,是原始的修改.

谢谢.

dar*_*mos 5

模板功能怎么样?

template <typename T>
void example (T &var);
Run Code Online (Sandbox Code Playgroud)

编译器将替换两者floatdouble用法(请记住C++模板是具有类型安全性的宏)


Dan*_*Dan 2

您可以将其模板化。

template<typename T>
void example (T &var)
Run Code Online (Sandbox Code Playgroud)