103 / 82 / 78
Регистрация: 11.05.2015
Сообщений: 201
1

Функторы

14.01.2016, 21:59. Показов 1650. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу понять в чем ошибка. Когда func вызывается в main все в порядке, а когда из функции test, то выдает ошибку "результатом вычисления фрагмента не является функция, принимающая 2 аргумента".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <functional>
template <typename T>
void test(T lhs, T rhs, std::binary_function<T,T,bool>& func)
{
    func(lhs,rhs);
}
 
int main()
{
    int a = 10, b = 5;
    auto func = std::less<int>();
    func(a,b);
    test(a,b,func);
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2016, 21:59
Ответы с готовыми решениями:

функторы
#include &lt;iostream&gt; class foo{ void operator ()(void){std::cout &lt;&lt; &quot;hi&quot;;} };

STL, функторы
Всем привет! Вообщем есть код: #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; int...

STL функторы, предикаты
У нас есть: std::multimap&lt;std::string,std::string&gt; map; нужно удалить все повторяющиеся...

Стандартные функторы-адаптеры
Добрый вечер! Хочу отсортировать контейнер, заполненный указателями на объекты класса Class,...

3
Неэпический
18115 / 10701 / 2063
Регистрация: 27.09.2012
Сообщений: 26,948
Записей в блоге: 1
14.01.2016, 22:02 2
ivan37, Сам std::binary_function никаким функтором не является.
Можете считать, что std::binary_function, это некий флажок у типа,
что он является функтором с двумя аргументами и предоставляет необходимый псевдонимы.

P.S. В C++11 оно уже deprecated.
0
103 / 82 / 78
Регистрация: 11.05.2015
Сообщений: 201
14.01.2016, 22:17  [ТС] 3
Croessmah, Что мне нужно сделать, чтобы в функцию в качестве аргументов можно было передавать объекты типа std::less<T> и std::greater<T>?
0
Неэпический
18115 / 10701 / 2063
Регистрация: 27.09.2012
Сообщений: 26,948
Записей в блоге: 1
14.01.2016, 22:21 4
Лучший ответ Сообщение было отмечено ivan37 как решение

Решение

C++
1
2
3
4
5
template <typename T, typename Func>
void test(T lhs, T rhs, Func func)
{
    func(lhs,rhs);
}
1
14.01.2016, 22:21
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2016, 22:21
Помогаю со студенческими работами здесь

Функторы, алгоритмы и адаптеры
Нужна помощь! 1 Нужно создать multimap и multiset на основе элементов типа класса CPerson,...

Функторы и алгоритмы stl
Добрый день! Интересует такой вопрос. Я хочу, используя стандартный алгоритм стл for_each() и...

Шаблоны и функторы как callback для класса свойства объекта. Код работает - но не должен
Здравствуйте! Хочу написать реализацию класса свойства на шаблоне. Т.е есть объект, он инициирует...

функторы && STL
Знакомлюсь с функторами. Помогите реализовать поиск минимального числа в последовательности,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru