在我正在研究的项目中,我有一个类似于此的模板化函数,其中所有参数都应为T型
#include <iostream>
template<typename T> bool aWithinBOfC(T a, T b, T c)
{
return std::abs(a - c) < b;
}
我遇到的问题是,如果所有参数的类型都不相同,则无法编译,但是在评估之前,应将相似的类型隐式转换为分辨率最高的类型似乎是合理的。有什么办法可以使这样的电话有效吗?
int main()
{
double a{1.2};
double b{1.4};
float c{0.1f};
std::cout << aWithinBOfC(a, b, c) << std::endl;
}
遵循这些思路,也许是:
Demo