如何在 C++ 中声明 Magnitude 类型?
How to declare Magnitude type in C++?
假设我有一个模板 class 必须使用一般类型 T complex and real 但我还需要一个可以存储 abs(T) 的真实类型。我如何获得合适的输入并定义类型?
我尝试了以下方法:
template < typename T>
class sth{
typedef std::invoke_result<*std::abs, Value>::type real_type;
real_type sth_else(T x)
return std::abs(f(x));
}
如果你需要通过表达式的结果来定义,那么它会像
using real_type = decltype (std::abs(std::declval<T>()));
declval
会为 function
提供一个合适的 T 类型参数
假设我有一个模板 class 必须使用一般类型 T complex and real 但我还需要一个可以存储 abs(T) 的真实类型。我如何获得合适的输入并定义类型?
我尝试了以下方法:
template < typename T>
class sth{
typedef std::invoke_result<*std::abs, Value>::type real_type;
real_type sth_else(T x)
return std::abs(f(x));
}
如果你需要通过表达式的结果来定义,那么它会像
using real_type = decltype (std::abs(std::declval<T>()));
declval
会为 function