Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/76: Рейтинг темы: голосов - 76, средняя оценка - 4.93
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245

Использование bind2nd

23.06.2014, 00:22. Показов 14899. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи! Помогите, пожалуйста, разобраться с биндерами.
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
#include <vector>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
typedef const int first_argument_type;
typedef const int second_argument_type;
typedef bool result_type;
 
result_type isBuzz(first_argument_type v, second_argument_type d);
 
int main() {
    srand(time(0));
    vector<int> vi(15);
    for (auto& x : vi) x = rand() % 100;
 
    //putting out unchanged values
    for (const auto& x : vi) cout << x << endl;
 
    //setting adapter
    const int d = 5;
    for_each(vi.cbegin(), vi.cend(), bind2nd(isBuzz(), d));
 
    //putting out changed values
    cout.fill ('_');
    for (const auto& x : vi) {
        cout.width(5);
        cout << x << endl;
    }
    return 0;
}
 
result_type isBuzz(first_argument_type v, second_argument_type d) {
    if (v%d == 0)
        return true;
    else
        return false;
}
Хотелось бы понять как правильно "тайпдефить" адаптируемую функцию?.. И поясните ошибку, плз:
clang++ -std=c++11 -O2 16_0.cxx
16_0.cxx:27:43: error: no matching function for call to 'isBuzz'
for_each(vi.cbegin(), vi.cend(), bind2nd(isBuzz(), d));
^~~~~~
16_0.cxx:15:13: note: candidate function not viable: requires 2 arguments, but 0 were provided
result_type isBuzz(first_argument_type v, second_argument_type d);
^
1 error generated.


Добавлено через 5 минут
А, итераторы уже сообразил - нужно begin() и end()! Но это все-равно сути не решает.
upd2. Уф, и первый аргумент должен быть не-const. Исправил.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.06.2014, 00:22
Ответы с готовыми решениями:

Непонятки с bind2nd
Привет. Вот к примеру есть такой код: #include &lt;algorithm&gt; #include &lt;functional&gt; #include &lt;iostream&gt; #include...

bind1st и bind2nd
Проблемы с std::bind1st и std::bind2nd Пишу такой код: void foo(int &amp;t, int &amp;t) { } int main() { int a; ...

Отличие bind2nd от binder2nd
Привет. Чем отличается bind2nd (1st) от binder2nd (1st)? Первый - функция, а второй - функтор? Спасибо.

23
What a waste!
 Аватар для gray_fox
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
23.06.2014, 23:39
Студворк — интернет-сервис помощи студентам
andrejap, inline это inline) typename смотри в контексте
C++
1
typename _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type
type зависит от параметров шаблона (зависимый тип), поэтому необходимо указывать typename (что бы компилятор знал, что это именно тип, а не ещё что-то). Вот тут в ответе есть неплохое объяснение.
1
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
23.06.2014, 23:41  [ТС]
Цитата Сообщение от gray_fox Посмотреть сообщение
gray_fox, да, этот llvm часто встречаю в новостях, а что оно такое - до конца не могу понять. Можно чуточку по-подробнее? Тут в случае c++ clang++ транслирует исходный код в некий байткод, а затем llvm переводит его в машинный?
0
What a waste!
 Аватар для gray_fox
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
23.06.2014, 23:49
Цитата Сообщение от andrejap Посмотреть сообщение
gray_fox, да, этот llvm часто встречаю в новостях, а что оно такое - до конца не могу понять.
Ну это библиотека для разработки языков, по крайней мере в своей основе. Что-то большее об этом рассказать не могу, не в курсе.

Добавлено через 1 минуту
Цитата Сообщение от gray_fox Посмотреть сообщение
inline это inline)
Вообще inline там избыточен, т.к. шаблоны функций неявно inline.
0
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
24.06.2014, 00:02  [ТС]
gray_fox, кое-что почерпнул, хотя, не все там (по ссылке) ясно. Но главное учить дальше! Благодарю за добродетель!
Jupiter, thanks too!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.06.2014, 00:02

Ошибка номер c2535 в адапторе bind2nd
Доброго времени суток начал изучать STL и пытаюсь соответственно активно использовать в нижеприведенной программе компилятор выдал ошибку...

Забиндить второй аргумент функции, используя std::bind2nd
Как забиндить свою функцию с двумя аргументами в функцию с одним аргументом? Вот пример в котором нужно сделать для b: #include...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

Создание и использование своих @NamedQueries. Использование EntityManager
Добрый день! Создавал классы сущностей и сессий через NetBeans генераторы кода. Использование стандартных...

Задачи на использование событий. Осуществить использование событий в программе с применением синтаксиса обработчика, рекомендованного для среды NET Fr
NET Framework. Программа для поиска простых чисел среди чисел Фибоначчи. При нахождении очередного простого числа активировать событие...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru