template<typename T>
class Thread {
public:
void start() {
T* derived = dynamic_cast<T*>(this);
thread = new boost::thread(boost::bind(&T::doIt, derived, derived));
}
void doIt(T* derived) {
(*derived)();
}
};
class test : public Thread<test> {
};int main() {
test t; t.doIt();
return 0;
}
报错 testThread.cpp
1>g:\workspace\thread\testthread\testthread.cpp(10): error C2660: 'Thread<T>::doIt' : function does not take 0 arguments
1>          with
1>          [
1>              T=test
1>          ]