Lecture directement à partir d'un fichier std :: istream dans une chaîne std :: string

Est-il de toute façon de lire un nombre connu d'octets, directement dans un std::string, sans la création d'un tampon temporaire pour le faire?

par exemple actuellement je peux le faire par

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;

source d'informationauteur Fire Lancer