stringstream-> rdbuf () -> pubsetbuf setzt den Puffer nicht
Ich versuche, einen Stringbuffer eines Stringstream-Objekts zu ändern, ohne einen String mit der Methode pubsetbuf kopieren zu müssen, aber es funktioniert nicht. Ich verfolge die Dokumentation inhttp://www.cplusplus.com/reference/iostream/streambuf/pubsetbuf/. Hier ist mein Beispielcode:
#include <iostream>
#include <sstream>
int main(int argc, char* argv[])
{
std::stringstream stream("You say goodbye");
char replace[] = {"And I say hello"};
std::cout << stream.str() << std::endl; // Checking original contents
stream.rdbuf()->pubsetbuf(replace, 16); // Should set contents here
std::cout << stream.str() << std::endl; // But don't :(
return 0;
}
Und die Ausgabe ist:
You say goodbye
You say goodbye
Ich weiß, dass ich stream.str (replace) verwenden kann, aber diese Methode kopiert den Wert von 'replace', und ich möchte keine Kopie erstellen.
Was vermisse ich?
Update: Ich verwende VS2010