Kyl*_*lka 1 c++ casting static-cast eigen c++11
我想使用static_cast将复杂的<short>转换为complex <double>.
将complex <int16_t>转换为complex <double>
我试图做同样的事情,但我需要使用static_cast.我无法使用该解决方案的原因是因为我使用的是在其cast()函数中使用static_cast的Eigen.有没有办法扩展static_cast的功能以这种方式转换?或者有没有办法扩展Eigen的cast()函数来处理这种转换?
这基本上就是我的尝试:
Eigen::Array<std::complex<short>, Eigen::Dynamic, 1> short_array;
Eigen::Array<std::complex<double>, Eigen::Dynamic, 1> double_array;
double_array = short_array.cast< std::complex<double> >();
Run Code Online (Sandbox Code Playgroud)
我没有这样的cast功能就做到了:
Eigen::Array<std::complex<short>, Eigen::Dynamic, 1> short_array;
Eigen::Array<std::complex<double>, Eigen::Dynamic, 1> double_array;
double_array = short_array.unaryExpr(ptr_fun(complex_cast<double, short>));
Run Code Online (Sandbox Code Playgroud)
铸造复合体的功能可能如下所示:
template<class T, class U>
std::complex<T> complex_cast(const std::complex<U> &c) {
return { static_cast<T>(c.real()), static_cast<T>(c.imag()) };
}
Run Code Online (Sandbox Code Playgroud)