Пусть следующие две функции:C++: соединение связей?
#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/импульс) bind
. Что-то вдоль линий:
boost::bind(match1, "a test");
boost::bind(match2, 42);
Я хочу, чтобы иметь возможность получить из двух функций, как эти, которые принимают один аргумент и возвращают bool
, вызываемый объект, который принимает два аргумента и возвращает & & из bool
s. Тип аргументов произвольный.
Что-то вроде operator&&
для функций, которые возвращают bool
.
Вам не нужна функция, которая принимает один аргумент и возвращает bool? То есть эквивалентно 'match1 (« тест », X) && match2 (42, X)'? или вы действительно хотите 'match1 (« тест », X) && match2 (42, Y)'? –
Я действительно хочу функцию, которая принимает два аргумента. –