Funcionalidad del operador void () ()

Estoy confundido acerca de la funcionalidad devoid operator()().

¿Podría decirme sobre eso, por ejemplo?

class background_task
{
public:

    void operator()() const
    {
        do_something();
        do_something_else();
    }
};

background_task f;

std::thread my_thread(f);

Aquí, por qué necesitamosoperator()()? ¿Cuál es el significado de la primera y la segunda?()? En realidad, conozco el funcionamiento del operador normal, pero este operador es confuso.

Respuestas a la pregunta(4)

Su respuesta a la pregunta