template<typename T> class testClass{
public:
bool compare(const int& a, const int& b){
T x;
....
}
void sort(){
std::sort( data.begin() ,
data.end() ,
boost::bind<bool>(
&testClass<T>::compare,
this, _1 , _2 ) );
}
std::vector<int> data;
}
我有一个带有非静态成员函数的 template-d 类,旨在作为std::sort
. 比较器取决于typename T
参数。由于它有一个隐式this
指针,我尝试指向它boost::bind
的指针this
。
然而既不boost::bind<bool>(.......)
也boost::bind(....)
不会编译。
上面的示例在 MSVC 2008 上失败(因为我在非英语环境中,我不确定英语的确切信息,但可能抱怨任何一个原型都可以使所有必要的参数转换变得可行。)