[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


  • Mod

    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 unerwartet

    Das heißt complex , nicht complex.h . complex.h ist irgendein alter C-Header, darin stehen ganz andere Sachen (eben, wie C mit komplexen Zahlen umgeht). Ähnlich der Situation mit string und string.h . C++-Standardbibliotheksheader haben nie ein .h am Ende.



  • Die Kombination <complex> und std:: funktioniert jetzt, danke 🙂
    ...anfängerfehler 😡


Anmelden zum Antworten