gpt4 book ai didi

c++ - C++ 中的 static_cast complex 到 complex

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:04 25 4
gpt4 key购买 nike

我想使用 static_cast 将 complex< short > 转换为 complex < double >。

Convert complex<int16_t> to 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> >();

最佳答案

如果没有 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>));

复杂的转换函数可能如下所示:

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()) };
}

关于c++ - C++ 中的 static_cast complex<short> 到 complex<double>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51185887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com