Ever since the days of boost::thread (and std::thread is almost exactly the same) has there be no reason to introduce crutches like static member functions (or any other kind of "forwarding" function). When passing a member function to std::thread, the first parameter is automatically considered the object instance.
Having the SIG parameter for the function is pointless and redundant (ALL non-static member functions are being passed an instance, even if the language is hiding it). As a result, the call would have had to be
In other words, do as Paradigm Shifter already said and remove the pointless SIG parameter, then your original call should work just fine.
You are also still detaching the thread, which makes me wonder why you even bother making it a member? Read up on what detach does. You will have zero control over your thread and the thread-object will not be linked to the actual thread anymore. Don't detach, so you can call join right before you absolutely need the thread to be finished (which will automatically block until the thread is done, without requiring any silly contraptions of flags and condition variables and inter-thread communication non-sense).
If you want it to be nicely encapsulated, you could use std::future as well, but since you have no return value and don't need to carefully query "are we there yet", it has no benefit over starting your thread and calling join by the time you finally need that data.