标准库的谓词不能是类的非静态成员函数

标准库使用谓词时,如果谓词是一个函数,那么这个函数不可以是类的成员函数。

我想原因应该是类的成员函数的默认第一个参数是自己的指针this,也就是成员函数的参数要比显示申明中多出1个。而把成员函数当谓词使用时,传递进来的参数个数与函数成员实际所需要的参数个数不匹配,所以编译会出错。

而如果该成员函数是static的话还是可以的,因为static没有隐式的多出一个参数。

原文地址:https://www.cnblogs.com/wnarutou/p/3132811.html