C++ online Wissenstest



  • quizzer schrieb:

    ...alles nur mit reinem nackten C++ code.

    Und du magst auch weiterhin dieser Meinung sein aber wenn es ein C++ Quiz gäbe, so wäre in meinen Augen der Umfang den der C++ Standard abdeckt Inhalt, und nicht die persönliche Meinung eines einzelnen.

    cu André



  • quizzer schrieb:

    ...letzter Post...

    Für mich impliziert "C++" Standard C++ nach ISO/IEC 14882. Und ohne die STL ist C++ demnach kein C++, weil es nicht standardkonform ist.
    Ansonsten kann man gleich damit argumentieren, dass man solch einen Quiz auch mit reinen Pascal-Kenntnissen bestehen kann, weil man sich ja mit Pascal einen C++ Compiler schreiben kann (sinngemaess das, was Du als Argument gegen die STL aufführst).



  • Ich denke was er damit sagen will ist: Man kann jegliche Anforderung auch ohne STL erfüllen. Mit mindestens gleichwertiger Performance.

    Und ihr sagt ja selber, dass die STL in C++ programmiert ist. Das ist ein Widerspruch. Weil die STL ja zum C++ Standard gehört und in C++ programmiert ist, ist sozusagen die STL mit der STL programmiert.

    Wenn ihr versucht diesen Widerspruch aufzulösen kommt man automatisch dahin, dass entweder die STL nicht zu C++ gehört, oder die STL nicht im 98er C++ Standard programmiert wurde, sondern in einem älteren ( so wirds wohl auch gewesen sein 😉 ).



  • It0101 schrieb:

    Ich denke was er damit sagen will ist: Man kann jegliche Anforderung auch ohne STL erfüllen. Mit mindestens gleichwertiger Performance.

    Und ihr sagt ja selber, dass die STL in C++ programmiert ist. Das ist ein Widerspruch. Weil die STL ja zum C++ Standard gehört und in C++ programmiert ist, ist sozusagen die STL mit der STL programmiert.

    Wenn ihr versucht diesen Widerspruch aufzulösen kommt man automatisch dahin, dass entweder die STL nicht zu C++ gehört, oder die STL nicht im 98er C++ Standard programmiert wurde, sondern in einem älteren ( so wirds wohl auch gewesen sein 😉 ).

    Was soll daran widersprüchlich sein? Sobald Du eine Compilersource hast, kannst Du sie mit einem anderen Compiler bauen. Sobald man das getan hat, kann man den Compiler auch mit sich selbst bauen.
    Und mit älteren Standards zu argumentieren ist totaler Blödsinn...



  • It0101 schrieb:

    Und ihr sagt ja selber, dass die STL in C++ programmiert ist. Das ist ein Widerspruch.

    Ist es nicht. Die STL als Bestandteil des C++-Standard ist nicht programmiert. Theoretisch müsste es die STL als Bibliothek nichtmal geben, um den C++-Standard zu verabschieden. Denn die STL als Standard ist lediglich eine Schnittstellenspezifikation. Die STL als Bibliothek wird dann nach den Anforderungen der STL als Standard mit den Mitteln der Sprache umgesetzt.

    So gesehen ist also die Implementierung des einen Teils des C++-Standards (STL) mit den Mitteln des anderen Teils des C++-Standards (Sprache) möglich. Aber die STL (als Standard) ist nicht in C++ geschrieben, sondern in Englisch 😃


  • Administrator

    Die STL gehört DEFINITIV NICHT zum C++ Standard!

    Über die Standardbibliothek könnte man natürlich streiten :p
    *SCNR*
    So viel STL und dabei ist eigentlich immer die Standardbibliothek gemeint ...

    Grüssli



  • Und wenn wir schon dabei sind, möchte ich mal sehen, wie du quizzer mit reinem C++ eine Datei einliest. 😉



  • Dravere schrieb:

    Über die Standardbibliothek könnte man natürlich streiten

    Da brauchen wir uns nicht zu streiten, zumindestens ist sie Teil der Drafts zum Standard die ich kenne (Und die Standardbibliothek enthält auch die STL - kannst mich gerne korrigieren).

    cu André



  • drakon schrieb:

    Und wenn wir schon dabei sind, möchte ich mal sehen, wie du quizzer mit reinem C++ eine Datei einliest. 😉

    mit fstream?

    fstream gehört imo nicht zur STL und die http://www.cppreference.com/index.html sieht das genauso...



  • Erstmal: Dravere hat recht. Von einer STL steht nichts im Standard. Dort gibts nur eine C++ Standard Library.

    It0101 schrieb:

    drakon schrieb:

    Und wenn wir schon dabei sind, möchte ich mal sehen, wie du quizzer mit reinem C++ eine Datei einliest. 😉

    mit fstream?

    fstream gehört imo nicht zur STL und die http://www.cppreference.com/index.html sieht das genauso...

    Das gehört zur C++ Standard Library. Und die ist die ohne die Container- und Algorithmen Templates unvollständig.



  • hmm aber warum steht das bei der C++ reference explizit außerhalb der STL bei C++ I/O ?



  • It0101 schrieb:

    hmm aber warum steht das bei der C++ reference explizit außerhalb der STL bei C++ I/O ?

    Keine Ahnung, aber solange beides im C++ Final Draft steht, gehört dies für mich - unabhängig von der Namenswahl - zum C++ Standard.

    cu André



  • fstream gehört zum standard und die STL gehört zum standard... d.h. aber nicht das fstream zur STL gehört 🙂 Es ging ja jetzt darum ob man ohne STL Dateien einlesen kann.



  • It0101 schrieb:

    hmm aber warum steht das bei der C++ reference explizit außerhalb der STL bei C++ I/O ?

    Was in irgendwelchen Quellen im Netz steht, ist mir ziemlich Wumpe. Ich gucke da in die ISO/IEC 14882:2003. Ich denke, das ist recht bindend, wenn es um Aussagen zum Standard geht.
    Bei Dingen die man hier falsch macht, hilft einem camper auf die Sprünge und verweisst auf die entsprechenden Stellen :p



  • Was cppreference sagt ist wurscht. Nur der ISO-Standard zählt. Und der sagt nebenbei auch, dass es neben der hosted-Implementierung auch freestanding-Implementierungen geben darf, die nur lib.support.* enthalten müssen (1.4.7 und 17.4.1.3).
    /edit: Und nicht mal das vollständig. Erforderlich sind nur die Header cstddef, limits, cstdlib, new, typeinfo, exception und cstdarg weil diese für Teile der Sprache(!) benötigt werden.

    Dateien einlesen oder etwas ausgeben geht dann z.B. mit POSIX-Funktionen oder anderem betriebsystemspezifischen.



  • na gut, wieder was dazu gelernt 😉


  • Administrator

    drakon schrieb:

    Und wenn wir schon dabei sind, möchte ich mal sehen, wie du quizzer mit reinem C++ eine Datei einliest. 😉

    Wo ist das Problem? WinAPI verwenden, MFC verwenden. Die C++ Standardbibliothek ist nicht nötig. Und schliesslich macht diese im Hintergrund auch nichts anderes, als auf Windows die WinAPI zu benutzen.

    Deshalb denke ich, kann man durchaus eine Trennung zwischen C++ und der Standardbibliothek sehen. Ich habe früher ohne die Standardbibliothek gearbeitet, nur C++ und MFC. Das geht ... kein Problem!

    asc schrieb:

    (Und die Standardbibliothek enthält auch die STL - kannst mich gerne korrigieren).

    Jein. Ich möchte mal, dass du mir den Textauschnitt im Standard zeigst, wo der Name STL vorkommt. Die aktuelle STL hat sich inzwischen weiterentwickelt und sieht anders aus, als die, welche damals in die Standardbibliothek kopiert wurde. Die Standardbibliothek enthält in dem Sinne also nichts anderes. Es wurden allerdings damals Ideen - und davon reichlich - von der STL übernommen.

    Grüssli



  • Ist ja das Gleiche mit Boost. Davon wird auch relativ viel in TR1 und den neuen Standard einfliessen. Aber schlussendlich wird im C++-Standard kaum je das Wort "Boost" erwähnt werden.

    Trotzdem halte ich es für legitim, wenn man std::tr1::array mit Boost und std::vector mit der STL in Verbindung bringt. Nicht zuletzt, weil sich das im Zusammenhang mit der Standardbibliothek so eingebürgert hat. 😉



  • Dravere schrieb:

    drakon schrieb:

    Und wenn wir schon dabei sind, möchte ich mal sehen, wie du quizzer mit reinem C++ eine Datei einliest. 😉

    Wo ist das Problem? WinAPI verwenden, MFC verwenden. Die C++ Standardbibliothek ist nicht nötig. Und schliesslich macht diese im Hintergrund auch nichts anderes, als auf Windows die WinAPI zu benutzen.

    Das Problem ist, dass du meinen Post nicht richtig gelesen hast. 😉
    Ich habe gesagt mit reinem C++, wie es quizzer versteht. Ich habe nicht gesagt: "nicht mir der Standardbibliothek", sondern mit dem "reinen" C++, wie es quizzer versteht.

    It0101 schrieb:

    fstream gehört zum standard und die STL gehört zum standard... d.h. aber nicht das fstream zur STL gehört 🙂 Es ging ja jetzt darum ob man ohne STL Dateien einlesen kann.

    Dann solltest du mal genauer spezifizieren, was DU unter STL verstehst..



  • drakon schrieb:

    Dravere schrieb:

    drakon schrieb:

    Und wenn wir schon dabei sind, möchte ich mal sehen, wie du quizzer mit reinem C++ eine Datei einliest. 😉

    Wo ist das Problem? WinAPI verwenden, MFC verwenden. Die C++ Standardbibliothek ist nicht nötig. Und schliesslich macht diese im Hintergrund auch nichts anderes, als auf Windows die WinAPI zu benutzen.

    Das Problem ist, dass du meinen Post nicht richtig gelesen hast. 😉
    Ich habe gesagt mit reinem C++, wie es quizzer versteht. Ich habe nicht gesagt: "nicht mir der Standardbibliothek", sondern mit dem "reinen" C++, wie es quizzer versteht.

    Und das heißt? Er meint die reine Sprache, aber die erlaubt doch das Einbinden von anderen Bibliotheken…

    drakon schrieb:

    It0101 schrieb:

    fstream gehört zum standard und die STL gehört zum standard... d.h. aber nicht das fstream zur STL gehört 🙂 Es ging ja jetzt darum ob man ohne STL Dateien einlesen kann.

    Dann solltest du mal genauer spezifizieren, was DU unter STL verstehst..

    Vermutlich <{algorithm, iterator, queue, stack, deque, list, vector, map, set}>. Scheint mir auch recht sinnvoll so.


Anmelden zum Antworten