[SOLVED] Bezeichner complex nicht definiert trotz include
-
Guten Tag
unter Microsoft Visual Studio Ultimate 2013 funktioniert es bei mir nicht mit Komplexen Zahlen zu arbeiten. Trotz Include der Datei complex.h bekomme ich die Meldung: "Der Bezeichner ""complex"" ist nicht definiert." Woran liegt das?mit freundlichen Grüßen
Nerva
#include "stdafx.h" #include <cmath> #include <complex.h> int _tmain(int argc, _TCHAR* argv[]) { complex<double> z; std::system("PAUSE"); return 0; }
-
es muss "std::complex<double>" heißen
BTW: "system" ist nicht Teil von std::
-
Mit std::complex<double> erscheint jetzt die Meldung:
Error "namespace"std"" hat keinen Member ""complex"".
bzw Beim Compilieren 'complex': ist kein Element von 'std'
'complex': nichtdeklarierter Bezeichner
'double'-Typ unerwartet
-
asdfasd schrieb:
BTW: "system" ist nicht Teil von std::
Doch. Alle Funktionen der C-Standardbibliothek sind im Namespace std, wenn man den C++-Header (also den cXXX statt XXX.h) einbindet. Sie dürfen auch im globalen Namensraum vorhanden sein, aber sie müssen in std sein. (C++11-Standard, 17.6.1.2,4; ähnlich in älteren und neueren Standards.)
Nerva schrieb:
Mit std::complex<double> erscheint jetzt die Meldung:
Error "namespace"std"" hat keinen Member ""complex"".
bzw Beim Compilieren 'complex': ist kein Element von 'std'
'complex': nichtdeklarierter Bezeichner
'double'-Typ unerwartetDas heißt
complex
, nichtcomplex.h
.complex.h
ist irgendein alter C-Header, darin stehen ganz andere Sachen (eben, wie C mit komplexen Zahlen umgeht). Ähnlich der Situation mitstring
undstring.h
. C++-Standardbibliotheksheader haben nie ein.h
am Ende.
-
Die Kombination <complex> und std:: funktioniert jetzt, danke
...anfängerfehler