Часть operator()
говорит, что объекты типа str_dist_
могут быть "вызваны", как если бы это была функция.(const std::string& s1, const std::string& s2)
говорит нам, что на самом деле является аргументом.
Например, скажем, у нас есть объект str_dist_ obj;
и два объекта std::string
, str1
и str2
.Затем мы можем написать что-то вроде этого
int result = obj(str1, str2);
Под обложками предыдущая строка идентична
int result = obj.operator()(str1, str2);
Обратите внимание, что первый набор скобок является частью имени членаfunction operator()
, в то время как второй набор фактически перечисляет аргументы.
Если вам нужна дополнительная информация, посмотрите Функторы или Функциональные объекты.Это термины, используемые для обозначения таких вещей, как str_dist_
объекты, для которых определено operator()
.Если вы воспользуетесь каким-либо из этих терминов, вы обязательно найдете много информации.