Am Freitag, dem 19. Juli 2002 um 22:18:37, schrieb Ulf Lorenz:
Wenn ich eine Funktion habe, die einen string zurueckliefert, und ich schreibe
std::strstream s; return (s.str());
wird mit dem char* also automatisch ein string initialisiert?
Ja, aber du musst beachten, dass s nicht auf irgendwelchem lokalen Speicher beruht, der am Ende der Funktion automatisch freigegeben wird. Ausserdem kannst du auch einfach kürzer schreiben:
return s.str();
Das Problem ist, dass, soweit ich das gesehen habe, die STL nichts anderes dafuer mitliefert (im Stroustrup von vor 3 Jahren steht nur ein ostringstream drin und ich denke mal, das ist _die_ Referenz) und ich keine zusaetzlichen Abhaengigkeiten haben moechte.
Naja das gilt nur für gcc < 3 und auch für den gibt es eine separate sstream-Implementierung, da musst du nur mal im Netz suchen. Alternativ hätte ich noch folgendes anzubieten: ;-)
$ dpkg -s libstlport4.5-dev Package: libstlport4.5-dev Status: install ok installed Priority: optional Section: libs Installed-Size: 3452 Maintainer: Torsten Werner twerner@debian.org Source: stlport4.5 Version: 4.5.3-2 Replaces: libstlport-dev Provides: libstlport-dev Depends: libstlport4.5 (= 4.5.3-2) Suggests: stl-manual, libstlport4.5-dbg Conflicts: libstlport-dev Description: STLport development files STLport is a open-source, volunteer-driven project. Its goal is to build complete, multiplatform ANSI C++ Standard Library with SGI STL code base. From this base, it inherits the following advantages : + Advanced technology for maximum efficiency + Exception safety and thread safety + Standard compliance and reliability + Important extensions - hash tables, singly-linked list, rope . For more information on STLport visit the web page http://www.stlport.org/ .
Torsten