说我有这种类型:
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++ 类型提升规则。是否有更好、更正确的方法来返回“合理”基本类型的值?我担心我可能会为 a和 afloat
的产品返回 a 。double
float