Usando << operador para gravar em um arquivo e cout

Eu gostaria de sobrecarregar o << operador para escrever o valor necessário para um arquivo e cout. Eu tentei fazê-lo com o código a seguir, mas não consegui. Ele apenas grava o valor no arquivo de texto. Qualquer ajuda seria apreciada. Obrigado.

void operator<<(std::ostream& os, const string& str)
{
    std::cout << str;
    os << str;
}

int main() {
    ofstream fl;
    fl.open("test.txt");
    fl << "!!!Hello World!!!" << endl;
    return 0;
}

questionAnswers(6)

yourAnswerToTheQuestion