Funcionalidade do operador void () ()

Estou confuso sobre a funcionalidade devoid operator()().

Você poderia me dizer sobre isso, por exemplo:

class background_task
{
public:

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

background_task f;

std::thread my_thread(f);

Aqui, porque precisamosoperator()()? Qual é o significado do primeiro e segundo()? Na verdade, eu sei o funcionamento do operador normal, mas esse operador é confuso.

questionAnswers(4)

yourAnswerToTheQuestion