Verifique se o objeto ostream é cout ou ofstream, c ++

Existe uma maneira em C ++ para verificar se umostream objeto écout ou umofstream 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;
    }
}

A razão pela qual eu quero fazer isso, é que eu quero sobrecarregar o<< operador a fazer duas coisas diferentes, dependendo do tipo de fluxo usado.

É possível sobrecarregar apenas o<< operador duas vezes cada vez com um tipo diferente de fluxo?

Atualizado para refletir melhor a intenção.

questionAnswers(4)

yourAnswerToTheQuestion