C++ fuer Windows und Linux entwickeln



  • EOutOfResources schrieb:

    Ethon schrieb:

    Einfach STL + [...]

    Wieso nicht STD?

    Ja, ich verwende fälschlicherweise STL als Begriff für die ganze C++-Standardlibrary, die nicht komplett aus Templatecode besteht. Aber ich denke jeder weiß was gemeint ist. 😉
    Und hey, der C-Part (gibt es andere Teile, nicht komplett templated sind ?) wird sowieso von vielen gerne verdammt.



  • Ethon schrieb:

    gibt es andere Teile, nicht komplett templated sind ?

    STD:

    • STL: Container, Iteratoren, Algorithmen
    • Streams: Sollte klar sein
    • Sonstiges: Der Rest eben (u.a. std::string , Lokale, Exceptions, ...)
    • CSTD: Standard-Bibliothek aus C


  • EOutOfResources schrieb:

    Sonstiges: Der Rest eben (u.a. std::string , Lokale, Exceptions, ...)

    std::string ist auch ein Template. 😉



  • wxSkip schrieb:

    EOutOfResources schrieb:

    Sonstiges: Der Rest eben (u.a. std::string , Lokale, Exceptions, ...)

    std::string ist auch ein Template. 😉

    Die Streams sind auch Templates, gehören aber trotzdem nicht zur STL 😉



  • wxSkip schrieb:

    std::string ist auch ein Template. 😉

    Gehört aber nicht zur STL. Die Definition, dass alle Templates zur STL gehören, ist falsch.



  • EOutOfResources schrieb:

    wxSkip schrieb:

    std::string ist auch ein Template. 😉

    Gehört aber nicht zur STL. Die Definition, dass alle Templates zur STL gehören, ist falsch.

    Ok.



  • wxSkip schrieb:

    EOutOfResources schrieb:

    Sonstiges: Der Rest eben (u.a. std::string , Lokale, Exceptions, ...)

    std::string ist auch ein Template. 😉

    so'n kack! std::string ist ne klasse die aus einem klassen-template instanziiert wurde...



  • der_besserwisser schrieb:

    wxSkip schrieb:

    EOutOfResources schrieb:

    Sonstiges: Der Rest eben (u.a. std::string , Lokale, Exceptions, ...)

    std::string ist auch ein Template. 😉

    so'n kack! std::string ist ne klasse die aus einem klassen-template instanziiert wurde...

    Hmm, ich dachte immer, das wäre 'n typedef...



  • typedef basic_string<char, char_traits<char>, allocator<char> >
    	string;
    typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >
    	wstring;
    

  • Mod

    Tachyon schrieb:

    der_besserwisser schrieb:

    so'n kack! std::string ist ne klasse die aus einem klassen-template instanziiert wurde...

    Hmm, ich dachte immer, das wäre 'n typedef...

    Das ist auch eine Art von Instanzierung...



  • Tachyon schrieb:

    Hmm, ich dachte immer, das wäre 'n typedef...

    Ja, aber es ist eben kein eigentliches Klassen-Template, sondern eine vollständige Instantiierung eines Templates und damit eine Klasse. Ich denke darauf wollte der_besserwisser hinaus. So oder so sind solche Haarspaltereien völlig irrelevant, die Standard Template Library umfasst nicht alles, was im Standard mit templates zu tun hat, Punkt.


  • Mod

    Wenn es schon genau sein soll: die STL ist nicht Teil des Standards, sie ist lediglich Vorlage für bestimmte Teile darin.



  • pumuckl schrieb:

    Tachyon schrieb:

    Hmm, ich dachte immer, das wäre 'n typedef...

    ...sondern eine vollständige Instantiierung eines Templates und damit eine Klasse...

    Doch Haarspalt...
    Dann müsste man std::string ja auch vorwärtsdeklarieren können (ob man es darf ist 'ne andere Kanne Öl).



  • Tachyon schrieb:

    Dann müsste man std::string ja auch vorwärtsdeklarieren können (ob man es darf ist 'ne andere Kanne Öl).

    typedefs kann man nie forward-deklarieren. Egal ob sie auf "echte" Klassen oder template-instantiierungen gehen.

    Oder willst du darauf hinaus, dass std::string keine Klasse, sondern eben nur ein typedef ist? Die gibts in der STL auch 😛


  • Mod

    Tachyon schrieb:

    pumuckl schrieb:

    Tachyon schrieb:

    Hmm, ich dachte immer, das wäre 'n typedef...

    ...sondern eine vollständige Instantiierung eines Templates und damit eine Klasse...

    Doch Haarspalt...
    Dann müsste man std::string ja auch vorwärtsdeklarieren können (ob man es darf ist 'ne andere Kanne Öl).

    Vorsicht Spaltpiltz. Was soll std::string denn sonst sein, wenn keine Klasse?



  • camper schrieb:

    Tachyon schrieb:

    pumuckl schrieb:

    Tachyon schrieb:

    Hmm, ich dachte immer, das wäre 'n typedef...

    ...sondern eine vollständige Instantiierung eines Templates und damit eine Klasse...

    Doch Haarspalt...
    Dann müsste man std::string ja auch vorwärtsdeklarieren können (ob man es darf ist 'ne andere Kanne Öl).

    Vorsicht Spaltpiltz. Was soll std::string denn sonst sein, wenn keine Klasse?

    Ein typedef auf std::basic_string<char>?


  • Mod

    Tachyon schrieb:

    camper schrieb:

    Tachyon schrieb:

    pumuckl schrieb:

    Tachyon schrieb:

    Hmm, ich dachte immer, das wäre 'n typedef...

    ...sondern eine vollständige Instantiierung eines Templates und damit eine Klasse...

    Doch Haarspalt...
    Dann müsste man std::string ja auch vorwärtsdeklarieren können (ob man es darf ist 'ne andere Kanne Öl).

    Vorsicht Spaltpiltz. Was soll std::string denn sonst sein, wenn keine Klasse?

    Ein typedef auf std::basic_string<char>?

    Eben.

    typedefs führen typedef-Namen ein (7.1.3/1). Und std::string ist folglich ein typedef-Name. Dieser Name verweist auf eine bestimmte Klassentemplatespezialisierung von std::basic_string. std::string ist somit eine Klasse.
    Wer Haare spaltet, muss mit Spliss leben 😉
    Keine interessanten Fragen im Forum heute 😞



  • camper schrieb:

    Keine interessanten Fragen im Forum heute 😞

    Stimmt, ich sterbe auch schon vor Langeweile ;o)


Anmelden zum Antworten