stringstream-> rdbuf () -> pubsetbuf no está configurando el búfer
Estoy tratando de modificar un stringbuffer de un objeto de cadena de caracteres sin tener que copiar una cadena, usando el método pubsetbuf, pero no funciona. Estoy siguiendo la documentación enhttp://www.cplusplus.com/reference/iostream/streambuf/pubsetbuf/. Aquí está mi código de ejemplo:
#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;
}
Y la salida es:
You say goodbye
You say goodbye
Sé que puedo usar stream.str (reemplazar), pero este método copia el valor de 'reemplazar', y no quiero hacer una copia.
¿Qué me estoy perdiendo?
Actualización: estoy usando VS2010