C ++函数对象术语函子,deltor,比较器等

时间:2010-06-10 08:08:38

标签: c++ terminology

普通仿函数的各种类型是否有普遍接受的术语?

例如,我发现自己使用比较器来比较像这样的比较函数:

struct ciLessLibC : public std::binary_function<std::string, std::string, bool> {
    bool operator()(const std::string &lhs, const std::string &rhs) const {
        return strcasecmp(lhs.c_str(), rhs.c_str()) < 0 ? 1 : 0;
    }
};

或者使用术语deltor来做这样的事情:

struct DeleteAddrInfo { 
    void operator()(const addr_map_t::value_type &pr) const {
        freeaddrinfo(pr.second);
    }
};

如果使用这些速记术语很常见,那么它们的某些字典是否存在?

3 个答案:

答案 0 :(得分:3)

Comparator使用相当广泛,在Java中比C ++更常用 - 比较函数是原始STL中的术语,Comparator是Java API中的术语。

'deltor'不是常用词,听起来像'delta',所以不会让我想到一些可以释放指针的东西。

答案 1 :(得分:2)

  1. 一个接受两个参数并求值为布尔值的函数是"binary predicate"(同样,一个参数为“一元”,三个为“三元”)。

  2. 在第二种情况下,“删除者”似乎是一个可接受的名称(见boost::shared_ptr)。

答案 2 :(得分:1)

当然没有标准,适用共同规则。