http://www.boost.org/libs/smart_ptr/sp_techniques.html
shared_ptr<X> func () { // nantoka, kantoka shared_ptr<X> p = new X; return p; }
shared_ptr<X> p = func();
void func (void* data);
thread( boost::function<void ()>(boost::bind(&fogeClass::fogeFunc, fogeClass1, l, m, n)) )