【发布时间】:2013-08-23 17:36:58
【问题描述】:
我有一个使用std::complex<double> 类型的代码。
来自FFTW Manual:
如果你有一个变量
complex<double> *x,你可以通过reinterpret_cast<fftw_complex*>(x)直接把它传递给FFTW。
但是,当我在我的代码中这样做时:
tmp_spectrum = reinterpret_cast<std::complex<double>*>(fftw_alloc_complex(conf.spectrumSize()));
plan_bw_temp = fftw_plan_dft_c2r_1d(conf.FFTSize(), reinterpret_cast<fftw_complex*>(tmp_spectrum), tmp_out, FFTW_ESTIMATE);
我收到dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]。
如何解决这个警告?谢谢!
【问题讨论】:
-
封装在禁用警告的函数中?
标签: c++ fftw strict-aliasing