 <p>You don't have to use the <code>operator()()</code> if you provide a method on the object to be executed (in this case <code>updateEpsilons</code>). Obviously this <code>operator()()</code> is not correct because it does not call the appropriate <code>updateEpsilons</code> method with a parameter.</p> <p>Note that in the tutorial, the new thread is created giving just an instance of a class, and no method. In this case, the class has to implement the <code>operator()()</code>, which is what will be called for the code of the thread.</p>