Así istringstream
copia el contenido de una cadena cuando se inicializa, por ejemplono copiar istringstream
string moo("one two three four");
istringstream iss(moo.c_str());
Me preguntaba si hay una manera de hacer uso del std::istringstream
c_str
dado como su búfer sin copiar cosas. De esta forma, no tendrá que copiar grandes bits de memoria antes de pasar el std::istringstream&
a funciones que toman istream&
como argumento.
Lo que he estado tratando de hacer es convertir algunas funciones que solo toman std::ifstream&
argumentos (son en su mayoría analizadores) en tomar istream&
también. ¿Tendría que hacer mi propia subclase istream
para esto?
Ver [esta respuesta] (http: // stackoverflow.com/questions/2786816/how-to-create-c-istringstream-from-a-char-array-with-null0-characters/2786872 # 2786872) para una forma de hacerlo (básicamente idéntica a la solución de @ Charles, pero envolviendo un 'istream' a su alrededor por conveniencia). –