让我们来看一个简单的functor
class LessThan {
public:
explicit LessThan (int in ) : val(in) {}
bool operator() (int param) const {
return param < val;
}
private:
int val;
};例如,我可以像这样使用-
vector<int> myVector = factory();
size_t count = count_if(begin(myVector), end(myVector), LessThan(10));我对围绕函数器的术语的理解是,类LessThan是一个函数器。即它是一个类型,而不是一个对象。即它是抽象的,而不是具体的。
那么,我们怎么称呼LessThan(10)呢?这里,我们通过实例化LessThan函数器类型来创建一个对象。那么,我们称它为functor对象吗?但是,函数器是函数对象。因此,LessThan(10)是一个函数对象对象??
这不是很荒谬吗?
https://stackoverflow.com/questions/38163086
复制相似问题