Термин терминологии объекта функции C ++, дельтор, компаратор и т. Д. - PullRequest
0 голосов
/ 10 июня 2010

Существует ли общепринятая терминология для различных типов общих функторов?

Например, я естественным образом использовал компаратор для функторов сравнения, таких как:

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 ]

3 голосов
/ 10 июня 2010

Comparator довольно широко используется, в большей степени в Java, чем в C ++ - функция сравнения является терминологией в исходном STL, Comparator - терминологией в Java API.

«deltor» не является общеупотребительным словом и звучит как «delta», поэтому я бы не стал думать о том, что освобождает указатели.

2 голосов
/ 10 июня 2010
  1. Функция, которая принимает два аргумента и возвращает логическое значение, представляет собой «двоичный предикат» (аналогично, «унарный» для одного аргумента и «троичный» для трех).

  2. Во втором случае «удалитель» представляется приемлемым именем (см. boost :: shared_ptr ).

1 голос
/ 10 июня 2010

Конечно, нет стандартов, применяются общие правила.

...