Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IDmikael
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 20
#1

Написать связыватель для получения унарного предиката - C++

13.06.2016, 13:38. Просмотров 130. Ответов 2

Написать связыватель, который бы связывал второй и третий аргументы трехаргументной функции для получения унарного предиката.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2016, 13:38     Написать связыватель для получения унарного предиката
Посмотрите здесь:

C++ Перегрузка унарного оператора
C++ Тема для получения полезной информации
C++ Перегрузка унарного минуса
C++ Перегрузка унарного оператора
Для натурального числа определить истинность предиката «все цифры в записи числа равны» C++
C++ Функция для получения пути к приложению
C++ Перегрузка операции унарного + (-)
C++ Перегрузка унарного минуса
Написать рекурсивную функцию для получения индекса максимального массива из 5 элементов C++
Перегрузка унарного минуса C++
C++ Алгоритм Маркова для получения палиндрома
Написать программу, которая определяет истинность предиката C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
4AKE
29 / 29 / 12
Регистрация: 20.12.2010
Сообщений: 116
13.06.2016, 18:00     Написать связыватель для получения унарного предиката #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
 
using namespace std;
 
template<class F, class T>
struct Binder3 {
    Binder3(F f, T a2, T a3) : func(f), arg2(a2), arg3(a3) {}
    F func;
    T arg2, arg3;
    bool operator()(T arg1) {
        return func(arg1, arg2, arg3);
    }
};
 
 
template<class F, class T>
struct predicate_func {
    F func;
    T arg2, arg3;
    predicate_func(F f, T a2, T a3) : func(f), arg2(a2), arg3(a3) {}
    bool operator()(T arg1) {
        return func(arg1, arg2, arg3);
    }
};
 
template<class F, class T>
predicate_func<F, T> bind3(F f, T arg2, T arg3) {
    return predicate_func<F, T>(f, arg2, arg3);
}
 
 
bool f3(int a, int b, int c) {
    cout << a << " " << b << " " << c << endl;
    return (a + b) == c;
}
 
int main() {
    int b = 2;
    //вариант 1
    auto fp = bind3(f3, b, 3);
    cout << "fp(1) = " << fp(1) << endl;
 
    // вариант 2
    auto fp1 = Binder3<decltype(&f3), int>(f3, b, 4);
    cout << "fp1(2) = " << fp1(2) << endl;
 
    return 0;
}
IDmikael
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 20
13.06.2016, 20:58  [ТС]     Написать связыватель для получения унарного предиката #3
ого, спасибо, вроде оно
Yandex
Объявления
13.06.2016, 20:58     Написать связыватель для получения унарного предиката
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru