我有一個使用std::complex<double>
類型的代碼。 從FFTW Manual:FFTW:如何防止破壞別名規則?
,如果你有一個變量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]
。 如何解決此警告?謝謝 !
封裝在禁用警告的功能中? – Yakk