boost :: thread :: thread(<unresolved overloaded =“”function =“”type =“”>,int) - 模板化类成员函数</unresolved>

时间:2012-03-27 20:17:01

标签: c++ multithreading templates boost

我正在寻找任何提示,如何使下面的代码工作,我找不到任何东西。所以我想知道这是否可能......

我需要在参数化类中运行一些线程。以下是示例代码:

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>

1 个答案:

答案 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 */}
};