Costumbre tipo de flujo ras
Pregunta
He tenido varias preguntas sobre el asunto de las corrientes y esas cosas, pero después de pensar un poco, he llegado a la conclusión de que todo lo que necesito es un tipo de color personalizado. Quiero que mi flujo a ras cuando se pone una nueva línea. Se ahorra tener que escribir std :: endl. ¿Es posible aplicar esto? Estoy usando un ostream con un stringbuf personalizado.
Solución
Creo que todo lo que tomaría está anulando ostream::put(char)
, pero no me hagáis caso de que:
template <typename Ch>
class autoflush_ostream : public basic_ostream<Ch> {
public:
typedef basic_ostream<Ch> Base;
autoflush_ostream& put(Ch c);
};
template <typename Ch>
autoflush_ostream<Ch>& autoflush_ostream<Ch>::put(Ch c) {
Base::put(c);
if (c == "\n") {
flush();
}
return *this;
}
Puede que tenga que reemplazar todos los métodos y la función que toma un carácter o secuencia de caracteres que se definen en la STL. Ellos todos básicamente lo mismo:. Llamar al método / función definida en la superclase, cheque si un salto de línea se acaba de imprimir y al ras de ser así