functionality of void operator()()
<p>I am confused about the functionality of void operator()(),</p>

<p>could you tell me about that, for instance:</p>

<pre><code>class background_task
{
public:

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

background_task f;

std::thread my_thread(f);
</code></pre>

<p>Here, why need operator()()?   what is the meaning of the first and second ()? Actually I know the operation of normal operator, but this operator is confusing.</p>
