C++ in Eclipse



  • Hallo ich verwende Eclipse um meine ersten C++ Schritte zu unternehmen. Habe da meine Java-Erfahrungen und möchte wirklich diese IDE benutzen. Ich schreibe das weil es wahrscheinlich einfachere IDE's gibt wo ich folgendes Problem nicht habe.

    Hier zuerst der Quellcode um den es sich handelt.:

    #include <iostream>
    #include <numbers>
    
    using namespace std;
    
    int main(){
    	cout << numbers::pi << endl;
    	return 0;
    }
    

    Diesen Quellcode habe ich jetzt bei Eclipse in zwei unterschiedlichen Projekten. GENAU der SELBER Code. In dem einen wird es kompiliert und korrekt ausgeführt. In dem anderen Projekt wird mir angezeigt "'numbers' has not been declared". Steht aber ganz klar oben drüber und funktioniert in dem zweiten Testprojekt ja so wie es soll. Im übrigen wird mir bei der Autovervollständigung auch angezeigt das die Konstante PI verwendet werden kann. Hat vielleicht jemand eine Erklärung wieso das EINE funktioniert und das ANDERE nicht ????
    Ich werde es wahrscheinlich ignorieren da ich noch in der Lernphase bin und ich die Zahl PI jetzt nicht unbedigt benötig bzw. selber als KONSTANTE deklarieren und definieren kann. Trotzdem würde ich es gerne wissen falls noch ein mal so was Ähnliches auftaucht. Hat jemand eine IDEE?

    mfg der UuugUuug



  • std::numbers kam erst mit C++20 in den Standard. Evtl. musst du irgendwo eine Einstellung setzen, damit das mit C++20 kompiliert wird.



  • Was für einen Compiler verwendest du denn (bzw. ist vorinstalliert bei der Eclipse-Installation)?

    Der Header numbers (und der Namensbereich std::numbers) ist erst seit der neuesten C++ Standard Version C++20 dabei.
    Ist evtl. bei dem einen Projekt in den Kompileroptionen eine ältere C++ Version (C++11, C++14, C++17) ausgewählt?



  • Hallo, die Einstellung für das oben aufgeführte Beispielprojekt stehen/standen auf "ISO C++ 20 (-std=c++20a)". Habe da am Anfang auch herumprobiert. In dem Buch mit dem ich gerade lerne steht drin, dass falls Befehle verwendet werden die AUSDRÜCKLICH den C++20a - Standard verwenden darauf hingwiesen wird. War hier nicht der Fall. Bin aber selber drauf gekommen und hatte es geändert. Problem blieb allerdings. In dem beiden Projekten, mit den selben Einstellungen, lief der (selbe)Code einmal super durch und zeigte mir PI glaube ich mit 6 Nachkommastellen an. In dem anderen Projekt, die selbe Quellcode-Datei, wurde mir angezeigt das der NUMBER-Header nicht gefunden wird. Der stand natürlich klar ganz oben als Include-Directive (#include<numbers>) drin. Die Quellcode-Autovervollständigung hat ja auch nur funktioniert da das INCLUDE ja anscheinend funktioniert. Ist schon sehr mysteriös. Ich denke dass es an einem Update des C++ Addons in der Eclipse IDE liegt. Ich ignoriere es jetzt einfach und warte mal ab wie sich Eclipse weiterhin wärend meinens Lernens verhält.

    Eine Frage noch. Die Zahl PI hat mir hier in meinem Beispiel halt nur sehr wenig Nachkomma-Ziffern angezeigt. Im NUMBERS-Headerfile selber sind da wesentlich mehr Nachkommestellen zu finden. Was müsste ich ändern damit mir nicht nur die paar Nachkommastellen angezeigt werden

    Vielen Dank an Alle,

    die mir helfen wollten und sich die Zeit genohmen haben mein Problem zu durchzulesen.

    PS.: Mir ist gerade noch was zu den Nachkommastellen eingefallen. Könnte es sein dass der std::cout - Befehl selber einfach nur eine gewissen Anzahl an Nachkommastellen anzeigt und dass falls ich mit der PI-Konstanten direkt rechne mehr Nachkommastellen verwendet werden???



  • @uuuguuug sagte in C++ in Eclipse:

    wurde mir angezeigt das der NUMBER-Header nicht gefunden wird

    Nein. Der Header als Datei wird gefunden und eingebunden. Da der Standard aber nicht auf C++20 eingestellt ist, wird der Inhalt ausgeblendet und daher ist numbers::pi unbekannt.

    Was da kaputtkonfiguriert ist kann dir hier per Ferndiagnose aber wohl niemand sagen.


  • Mod

    Eine Frage noch. Die Zahl PI hat mir hier in meinem Beispiel halt nur sehr wenig Nachkomma-Ziffern angezeigt. Im NUMBERS-Headerfile selber sind da wesentlich mehr Nachkommestellen zu finden. Was müsste ich ändern damit mir nicht nur die paar Nachkommastellen angezeigt werden

    Vielen Dank an Alle,

    die mir helfen wollten und sich die Zeit genohmen haben mein Problem zu durchzulesen.

    PS.: Mir ist gerade noch was zu den Nachkommastellen eingefallen. Könnte es sein dass der std::cout - Befehl selber einfach nur eine gewissen Anzahl an Nachkommastellen anzeigt und dass falls ich mit der PI-Konstanten direkt rechne mehr Nachkommastellen verwendet werden???

    Es ist ein Anzeigeproblem. Der Standard für Ausgabeströme ist, bei Fließkommazahlen auf 7(?) Stellen genau auszugeben. Du kannst das ändern, mit precision oder setprecision. Auf den verlinkten Seiten findest du auch weitere Funktionen zur Änderung des Ausgabeformats.



  • Danke noch einmal an ALLE. Kann hier damit geschlossen werden.

    ps.: Keine Ahung ob das dir richtige Vorgehensweise ist damit ein Thema geschlossen wird. SORRY falls nicht. 😌



  • This post is deleted!


  • @Th69 sagte in C++ in Eclipse:

    Was für einen Compiler verwendest du denn (bzw. ist vorinstalliert bei der Eclipse-Installation)?

    Der Header numbers (und der Namensbereich std::numbers) ist erst seit der neuesten C++ Standard Version C++20 dabei.
    Ist evtl. bei dem einen Projekt in den Kompileroptionen eine ältere C++ Version (C++11, C++14, C++17) ausgewählt?

    @Th69 Ich hatte vorher den aktuellsten MinGW-Compiler auf meinem Rechner installiert. Dieses wurde dann, denke ich, wärend des ersten Starts der Eclipse-C++ Entwicklungsumgebung eingebunden und konnte dann sofort von mir verwendet werden. Allerdings war da der "C++ Language Standard" noch nicht korrekt gesetzt was ich dann aber händich noch geändert hatte. Nur um auf deine Frage zu Antworten...👍


Log in to reply