Предположим, следующие две функции:
#include <iostream>
#include <cstdlib> // atoi
#include <cstring> // strcmp
#include <boost/bind.hpp>
bool match1(const char* a, const char* b) {
return (strcmp(a, b) == 0);
}
bool match2(int a, const char* b) {
return (atoi(b) == a);
}
Каждая из этих функций принимает два аргумента, но может быть преобразована в вызываемый объект, который принимает только один аргумент, используя (std / boost) bind
. Что-то вроде:
boost::bind(match1, "a test");
boost::bind(match2, 42);
Я хочу иметь возможность получить из двух подобных функций, которые принимают один аргумент и возвращают bool
вызываемый объект, который принимает два аргумента и возвращает && из bool
s . Тип аргументов произвольный.
Что-то вроде operator&&
для функций, которые возвращают bool
.