Leyendo directamente de un std :: istream en un std :: string
¿Hay alguna forma de leer un número conocido de bytes, directamente en una cadena std ::, sin crear un búfer temporal para hacerlo?
Por ejemplo, actualmente puedo hacerlo por
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;