Czytanie bezpośrednio ze std :: istream do std :: string

Czy mimo to można odczytać znaną liczbę bajtów, bezpośrednio do std :: string, bez tworzenia tymczasowego bufora?

np. obecnie mogę to zrobić przez

boost::uint16_t len;
is.read((char*)&len, 2);
char *tmpStr = new char[len];
is.read(tmpStr, len);
std::string str(tmpStr, len);
delete[] tmpStr;

questionAnswers(6)

yourAnswerToTheQuestion