2010-06-10 76 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