【发布时间】:2017-06-03 20:54:46
【问题描述】:
我正在尝试使用单个函数来划分常用数据类型(int、double、float、long、string、char)并且无法将通用字符串转换为数字类型。这是我目前所拥有的:
template <typename T>
T const& Division(T const& a, T const& b)
{
if (typeid(a) == typeid(string))
{
stringstream ss;
float first, second;
ss << a;
ss >> first;
ss << b;
ss >> second;
stringstream output;
output << first / second;
T result;
output >> result;
return result;
}
}
【问题讨论】:
-
“我正在尝试使用单个函数来划分任何数据通用类型” - 这听起来不太好,您的代码尝试证明了这一点。你到底想解决什么问题?
-
任何类型?如果我定义一个 Person 类怎么办?
person1 / person2是什么意思?充其量是荒谬的。 -
什么麻烦?请阅读minimal reproducible example。
-
在泛型函数中做特定类型的东西不被认为是不好的做法吗?
-
@Dr.是的。如果你需要具体,那么你应该specialise模板。或者完全采用不同的方法。
标签: c++ string templates generics type-conversion