namespace wird nicht gefunden
-
Ich habe folgenden Code:
#ifndef FFTFUNCTIONS_H #define FFTFUNCTIONS_H namespace fftutils { static inline void printarray(complex<double> * array, size_t nx, size_t ny); } static inline void fftutils::printarray(complex<double> * array, size_t nx, size_t ny) { cout << endl << "----------- array: ---------------" << endl; for (size_t y = 0; y < ny; y++) { for (size_t x = 0; x < nx; x++) { cout << " y:" << y << " x:" << x << " c:(" << array[y + ny *x].real() << " , " << array[y + ny *x].imag() << " )" << endl; } } } #endif // FFTFUNCTIONS_HWenn ich das in einer anderen cpp Datei lade und verwende,
fftutils::printArray(in, nx, 1);dann bekomme ich die Fehlermeldung:
FFTWPlanAndExecute.h(71) : error C2039: 'printArray' : is not a member of 'fftutils'
FFTWPlanAndExecute.h(71) : error C3861: 'printArray': identifier not foundIch sehe den Fehler nicht...
-
Oben schreibst du printarray und unten printArray.

-
capslock schrieb:
Oben schreibst du printarray und unten printArray.

Vielen Dank, ich wäre nicht darauf gekommen...
-
Warum static inline? Da gibt's doch keinen guten Grund für.
Übrigens: Es lohnt sich, die Geschwindigkeit von opeartor*(complex<>,complex<>) unter verschiedenen Compileroptionen zu testen und mit
complex<double> mal(complex<double> a, complex<double> b) { return complex<double>( a.real()*b.real() - a.imag()*b.imag(), a.real()*b.imag() + a.imag()*b.real(), ); }zu vergleichen. Zumindest in der Standardeinstellung ist der operator* für komplexe Zahlen beim GCC relativ langsam. Das liegt daran, dass es eine Sonderbehandlung für infinity/nan gibt, die man eigentlich oft nicht benötigt.