私がこのタイプを持っているとしましょう:
template <typename T, typename U>
using product_type = decltype(::std::declval<T>() * ::std::declval<U>());
関数テンプレートで使用する
template <typename T, typename U>
product_type<T, U> product(T const a, U const b)
{
return a * b;
}
テンプレートから生成されるテンプレート関数は、C++ の基本型に対して「妥当な」積の値を返しますか? これは C++ の型昇格規則を使用すると思います。「合理的な」基本型の値を返すための、より適切で正しい方法はありますか? たとえば、とfloat
の積に対して を返すのではないかと心配しています。double
float