我正在寻找任何提示,如何使下面的代码工作,我找不到任何东西。所以我想知道这是否可能......
我需要在参数化类中运行一些线程。以下是示例代码:
template<typename T, int SIZE, class ThreadingSettings, class CheckingPolicy>
class MyClass {
void Run() { boost::thread testThread(WriteValueA, 5); }
void WriteValueA(const T value) {/* some work here */}
}
但是g ++错误:
boost::thread::thread(<unresolved overloaded function type>, int)
这就是我创建该类对象的方式:
typedef MyClass<int, 4, SingleThread, NoCheckingPolicy> int_class;
int_class a;
任何帮助表示感谢。
编辑:
我在Win7上使用NetBeans和cygwin。我包含以下文件:
#include <boost/thread.hpp>
#include <boost/date_time.hpp>
答案 0 :(得分:0)
template<typename T, int SIZE, class ThreadingSettings, class CheckingPolicy>
class MyClass {
public:
void Run() { boost::thread testThread(boost::ref(*this), 5); }
void operator()(const T value) {/* some work here */}
};