Поскольку вы используете C ++ 11, лямбда-выражение является хорошим и чистым решением.
class blub {
void test() {}
public:
std::thread spawn() {
return std::thread( [this] { this->test(); } );
}
};
, так как this->
может быть опущено, его можно сократить до:
std::thread( [this] { test(); } )
или просто
std::thread( [=] { test(); } )