【发布时间】:2012-07-10 12:17:47
【问题描述】:
我正在尝试使用 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) {
// ?
};
我想转换模板,如果double 使用f,如果std::vector<double> 使用for 循环。不幸的是,我的函数不使用任何算术运算符,并且条件运算符不能重载。我应该怎么做?
【问题讨论】:
-
为什么在这里使用模板?你应该重载这个函数。
标签: c++ templates casting operator-overloading