C++ Standards



  • Natürlcih. Aber was machst du wenn du irgendeinen C++ code siehst und auf einaml fallen dir ein paa C++schlüsselwörter auf , die normalerweise nicht da sind...und nach ner kurzer suche bei google rausfindest , dass gerade ein neuer Standard eingeführt wurde. Dürfen überhaupt durch neue Standards neue c++keywords hinzugefügt werden???



  • Selbst wenn es einen festen Standard geben würde, könntest du niemals C++ "zu Ende lernen".



  • Allerdings, kannst ja mal einen von den Freaks fragen, ob die der Meinung sind, diese Sprache komplett zu beherrschen... 😃



  • alex89ru schrieb:

    Stimmt auch.
    Aber stell dir vor du häättest heute C++ (zu Ende) gelernt. Du bist froh und stolz , aber nach einer Woche kommt der nächste C++ Standard..hehe scheisse gelaufen....
    Mir ist schon klar dass die Standards nicht jede Woche erneuert werden.
    Mir ist genauso klar , das man bei compilern (zumindest bei gcc/g++ als Argument einen Standard auswählen kann)...aber trotzdem...heute hat man C++ zu Ende gelernt und in einer Woche ist man nicht mehr auf dem neusten Stand

    Wenn du glaubst du hättest irgendwo im IT-Bereich irgendwas zu Ende gelernt
    und denkt du wärst fertig, dann hast du definitiv das falsche Hobby.
    😉 😃 🙄



  • halt dich einfach an ISO/IEC 14882:2003 und such dir Compiler, die zu diesem Standard konform sind - da kann sich nichts mehr verändern - wenn irgendwann ISO/IEC 14882:2006 kommt kannst du einfach weiter nach dem ISO/IEC 14882:2003 Standard programmieren



  • alex89ru schrieb:

    Aber stell dir vor du häättest heute C++ (zu Ende) gelernt. Du bist froh und stolz , aber nach einer Woche kommt der nächste C++ Standard..hehe scheisse gelaufen....

    Wegen sowas brauchst du dir keine Sorgen machen. So selten, wie ein neuer C++ Standard herauskommt, ist die Chance relativ gering, dass du jede Woche umlernen musst. Aktuell ist ja immer noch der Standard von 1998 (die 2003er Auflage ist lediglich eine Nachbesserung), und die Chancen stehen ziemlich gut, dass wir frühestens 10 Jahre danach einen neuen Standard bekommen. Und auch dann wird C++ keine vollkommen andere Sprache. AFAIK wird es nur sehr wenige Änderungen geben, das meiste werden einfach Erweiterungen sein. Das bedeutet zwar neu lernen, aber bisheriges Wissen brauchst du trotzdem nicht wegschmeissen.



  • Richtig, denn eigentlich wird der C++ Standard viel zu selten neu aufgelegt. Und alex89ru macht sich sorgen, weil alle 10 Jahre ein neuer raus kommt? 😮

    1998 erster Standard
    2003 Nachbesserung des Standards
    200x soll der nächste kommen. Herb Sutter _hofft_ spätestens 2009!!!

    Also, wer da Schwierigkeiten hat C++ hinterher zu kommen, sollte sich ein anderes Hobby suchen. Java und C# bekommen alle 2 Jahre eine neue Version! :p



  • Guter Punkt, C# hat mit .NET2 auch ein paar neue features bekommen. ( z.b. Iteratoren oder Generics ) die waren in C# 1 noch nicht drin in C#2.0 aber schon 🙂



  • Ein C/C++ Compiler lässt sich für gewöhnlich auch auf ältere Standards einstellen. Hier sind zum Beispiel die Dialekt-Einstellungen des GNU Compilers dokumentiert: http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/C-Dialect-Options.html#C-Dialect-Options



  • schorsch code schrieb:

    Ein C/C++ Compiler lässt sich für gewöhnlich auch auf ältere Standards einstellen. Hier sind zum Beispiel die Dialekt-Einstellungen des GNU Compilers dokumentiert: http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/C-Dialect-Options.html#C-Dialect-Options

    Mir ist genauso klar , das man bei compilern (zumindest bei gcc/g++ als Argument einen Standard auswählen kann)...aber trotzdem...

    zzzsss... erst mal Thread durchlesen 😉



  • Der Standard wird nicht aus Boshaftigkeit aktualisiert, sondern damit er nicht in der Bedeutungslosigkeit verschwindet. Denn die Implementationen werden natürlich weiterentwickelt, und wenn es keinen Standardisierungsprozess gibt, dann macht das eben Hersteller jeder für sich, nicht alle zusammen am runden Tisch. Wenn selbst das aufhört, ist C++ tot.



  • Naja. Solange C++ nur erweitert wird , und bereits vohandene Sachen nicht geändert bzw nicht "weggeworfen" werden , kann es mir ja egal sein....ich muss ja nicht jeder Neuerung folgen...es sei denn ich will...naja , zur Zeit bin ich mit diesem Standard zufrieden! 🙂



  • Da kannst du glaub ich unbesorgt sein. Die Standardleute machen sich jedesmal fast in die Hose wenn irgendeiner was neues vorschlägt und fangen erstmal an, vollkommen obskure Beispiele zu suchen, die dann nicht mehr funktionieren würden ... 😉



  • Da bin ich aber beruhigt. 🕶



  • alex89ru schrieb:

    Naja. Solange C++ nur erweitert wird , und bereits vohandene Sachen nicht geändert bzw nicht "weggeworfen" werden , kann es mir ja egal sein

    Wie gesagt, einige Änderungen kann es schon geben. Gut möglich, dass zB das auto Schlüsselwort eine neue Bedeutung bekommt (oder wurde das mittlerweile wieder verworfen 😕 ). Dennoch, solche Sachen werden relativ überschaubar bleiben.



  • Was hat denn auto bisher für eine bedeutung? 😕 Hab ich bisher nie benutzt.

    Aber laut Herb Sutters letzten Vortrag auf der MS PDC wird auto in den nächsten C++ Standard reinkommen. auto soll einfach Tipparbeit sparen, wenn der Compiler definitiv den Typ erkennen kann.

    std::vector<int> b = foo(); // viel Tipparbeit, wobei es extremere Beispiele gibt. ;)
    b.push_back(100);
    

    kann man in Zukunft dann so schreiben:

    auto b = foo();
    b.push_back(100);
    


  • auto is'n trick um code unverständlicher zu machen.



  • Stimmt! Zum ersten Mal muss ich 9 recht geben.
    So wie der code ausschaut wird der code nicht gerade eindeutig werden.



  • Was hat denn auto bisher für eine bedeutung? 😕 Hab ich bisher nie benutzt.

    auto ist ne angabe wo ne Variable gespeichert werden soll - es gibt static, register usw. auto wird implizit Angenommen wenn du nichts anderes angibst

    z. B.

    auto int a;
    

    ist das gleiche wie

    int a;
    


  • alex89ru schrieb:

    Stimmt! Zum ersten Mal muss ich 9 recht geben.
    So wie der code ausschaut wird der code nicht gerade eindeutig werden.

    Ok, reales Beispiel aus meinem derzeitigen Projekt:

    template<size_t fieldSize>
            std::auto_ptr<std::bitset<fieldSize> > get();
    
    ...
    
    auto_ptr<bitset<48> > foo = blubb.get<48>();
    
    // versus
    
    auto foo = blubb.get<48>();
    

    Auch bei Iteratoren als Rückgabetypen merkt man eine deutliche Verkürzung, z.B. hatte ich mal etwa das hier:

    std::multimap<std::string, Huffman<char> >::iterator iter = foo.begin();
    
    // versus
    
    auto iter = foo.begin();
    

Anmelden zum Antworten