乗算によって返される精度を 2 倍にする方法はありますか (オーバーフローを避けるため)。
template<class T> class MyClass {
T multiply (T a, T b) { return a * b; }
}
何かのようなもの:
long T multiply (T a, T b) { return a * b; }
そのため、'int'、'long'、または 'double' のいずれが指定されても、'long int'、'long long'、または 'long double' が乗算から返されます。
これは一般的な質問です。内部で double を使用して回避しています。しかし、私の質問は、C++ で型を「長い」バリアントに昇格させるメカニズムがあるかどうかです。