stringstream-> rdbuf () -> pubsetbuf не устанавливает буфер

Я пытаюсь изменить stringbuffer объекта stringstream без необходимости копировать строку, используя метод pubsetbuf, но он не работает. Я слежу за документацией вhttp://www.cplusplus.com/reference/iostream/streambuf/pubsetbuf/, Вот мой пример кода:

#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;
}

И вывод:

You say goodbye
You say goodbye

Я знаю, что могу использовать stream.str (replace), но этот метод копирует значение «replace», и я не хочу делать копию.

Что мне не хватает?

Обновление: я использую VS2010

Ответы на вопрос(1)

Ваш ответ на вопрос