Compruebe si el objeto ostream es cout u ofstream, c ++

¿Hay alguna manera en C ++ para verificar si unostream objeto escout o unofstream ¿objeto?

Algo como:

ostream& output(ostream& out)
{
    if (out == cout)
        return out;
    else
    {
        out << "something different because its not going to the console" << endl;
        return out;
    }
}

La razón por la que quiero hacer esto es porque quiero sobrecargar el<< operador para hacer dos cosas diferentes dependiendo del tipo de flujo con el que se usa.

¿Es posible sobrecargar el<< operador dos veces cada vez con un tipo diferente de flujo?

Actualizado para reflejar mejor la intención.

Respuestas a la pregunta(4)

Su respuesta a la pregunta