C++ fuer Windows und Linux entwickeln
-
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;
-
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.
-
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

-
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>?
-
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)