std::complex<double>
タイプを使用するコードがあります。FFTWマニュアルより:
変数がある場合は、
complex<double> *x
経由で FFTW に直接渡すことができますreinterpret_cast<fftw_complex*>(x)
。
ただし、コードでこれを行うと:
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]
。この警告を解決するには?ありがとう !