有沒有什麼方法可以將乘法返回的精度加倍(以避免溢出)?將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