2010-06-10 74 views
0

对于常见仿函数的各种类型,是否有普遍接受的术语?C++函数对象术语仿函数,deltor,比较器等

比如我发现自己自然地使用比较比较函子是这样的:

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

我所知道的肯定是没有英文单词'comparitor',有'比较'这个词。 – bobah 2010-06-10 08:13:53

+0

我会非正式地称你的“deltor”为“删除者”。 – peterchen 2010-06-10 08:25:52

+0

@bobah:真的,只需编辑帖子来纠正拼写错误,不要评论它。 – 2010-06-10 09:00:37

回答

1

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

+0

我想知道的是,如果在任何地方都有一个常用的函子名词列表?没有标准暗示... – 2010-06-10 08:59:10

3

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

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

+0

我相信构造/析构函数的常用术语是“ctor”和“dtor”。 – PeterK 2010-06-10 08:22:57

+2

@PeterK我相信常用的术语是构造函数/析构函数的“构造函数”和“析构函数”。我通常不会用txt语言编写或记录我的代码。 – 2010-06-10 08:29:44

+0

有什么建议吗? Delator可能吗? – 2010-06-10 09:02:34

2
  1. 有两个参数,并评估为布尔函数是"binary predicate"(同样,“一元”为一个参数,和“三元”三)。

  2. 在第二种情况下,“deleter”似乎是一个可接受的名称(请参阅boost::shared_ptr)。

+0

+1为Boost参考。关于谓词术语,我知道它并寻找更具体的短手术语,比如你提到的“删除器”,这暗示了函子的功能。 – 2010-06-10 09:59:15