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.

¿Fue útil?

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í

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top