我正在尝试使用 C++ 模板来实现一个非常简单的事情。我想构建一个通用符号函数,可以处理sgn(x)
x 可能是double
或std::vector<double>
(即返回std::vector<double>
包含结果)的情况。为了实现这一点,我正在使用模板
double f(double x) {
return (x>=0)?1.0:-1.0;
};
template<typename T>
T F(T x) {
// ?
};
我想转换模板并使用f
ifdouble
或for
循环 if std::vector<double>
。不幸的是,我的函数不使用任何算术运算符,并且条件运算符不能重载。我应该如何进行?