有没有什么方法可以将乘法返回的精度加倍(以避免溢出)?将C++模板类型T修改为“long T”?
template<class T> class MyClass {
T multiply (T a, T b) { return a * b; }
}
喜欢的东西:
long T multiply (T a, T b) { return a * b; }
所以这是否 '诠释', '长',或 '双' 被赋予,一个 '长整型', '很长很长' 或“长双'会从乘法中返回。
这是一个普遍的问题。我在内部使用double来解决它。但我的问题是,是否有任何机制在C++中将类型推广到其“长”变体?
它可能会更好,如果你想避免溢出只使用'长long'为你的'T'。 – Pubby 2013-03-07 23:10:56
'long'不是可以应用于类型名称的限定符; 'long int'是一个不可分割的类型名称,恰好与两个关键字'long'和'int'拼写在一起。 – 2013-03-07 23:11:45
我不明白你为什么要使用“长T”。 T是一个模板参数,它可以是你想要的任何基本类型或实例对象,因为long *操作符被覆盖。在某些情况下,你可以将T投入长时间。 – user1929959 2013-03-07 23:12:50