|
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
|
|||||||||||
Разобраться с std::bind, плейсхолдеры22.06.2015, 02:24. Показов 9426. Ответов 15
Метки нет (Все метки)
Здравствуйте, чтобы разобраться с основами std::bind написал следующий код:
0
|
|||||||||||
| 22.06.2015, 02:24 | |
|
Ответы с готовыми решениями:
15
Как можно еще использовать std::placeholders вне в связки с std::bind? В чем отличия между std::cref() и std::bind()? |
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 22.06.2015, 02:38 | |||||||
Сообщение было отмечено tapochka как решение
Решениес которым нужно запустить функтор. так понятнее: http://rextester.com/LXNV38035
здесь доп. материал: Применение вложенных boost::bind
1
|
|||||||
|
Диванный эксперт
|
||||||
| 22.06.2015, 02:50 | ||||||
Сообщение было отмечено tapochka как решение
Решение
bind создает новый объект-функцию из указанной функции и параметров
параметры должны соответствовать сигнатуре исходной функции placeholders позволяют резервировать место для передачи параметров в вызове полученной функции остальные подставляются в вызов исходной по значению допустим есть функция int f(int, int, int) при вызове auto f1=bind(f, _1, 1, 2); будет создан функциональный объект, принимающий 1 параметр int и примерно равносильный объявлению
с классами немного по другому: нужно помнить что передается скрытый параметр this, который компилятор приписывает в начало списка. т.е нужно указывать bind-у резервировать место под этот параметр, либо указывать с каким объектом производить связывание
1
|
||||||
|
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
|
|||||||
| 22.06.2015, 03:40 [ТС] | |||||||
|
hoggy, не подскажете почему если написать
Добавлено через 9 минут Cra3y,
0
|
|||||||
|
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
|
|||||||||||
| 22.06.2015, 04:15 [ТС] | |||||||||||
|
Cra3y, можете, если не сложно, привести доходчивый пример где было бы несколько плейсхолдеров в одном байнде... не понятно пока что
Добавлено через 20 минут нашел такой код:
0
|
|||||||||||
|
Диванный эксперт
|
||||||||||||
| 22.06.2015, 04:23 | ||||||||||||
Сообщение было отмечено tapochka как решение
Решение
попробую...
Добавлено через 6 минут в простейшем случае вам нужно передать в bind объект, с которым нужно вызывать эту функцию
1
|
||||||||||||
|
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
|
|
| 22.06.2015, 04:27 [ТС] | |
|
спасибо, буду разбираться долго еще видимо...
чуть-чуть прояснилось с найденным примером когда show в классе сделал статической
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||||||||||||||||||||||||||||
| 22.06.2015, 10:41 | |||||||||||||||||||||||||||||||||||||||||||
|
смотрите:
rintt - метод класса, значит следующим аргументом должен быть объект, для которого нужно сделать запуск. но там фигурирует плейсхолдер. значит указать этот объект нужно при запуске функтора:
laceholders::_1 приходится на объект для которого нужно запустить методstd: laceholders::_2 на аргумент i.для свободных функций все тоже самое, только там нет объекта для которого нужно вызвать функцию: поэтому, после объявления функции, сразу идёт биндинг аргументов:
в общем, все что вам нужно понять: это разницу между биндом функции-члена, и обычной функции. разница только в том, что для методов класса после указания самого метода, идет указание объекта, для которого выполняется запуск.
1
|
|||||||||||||||||||||||||||||||||||||||||||
|
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
|
||||||
| 22.06.2015, 22:56 [ТС] | ||||||
|
hoggy, а каково назначение std::mem_fn тут
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 22.06.2015, 22:57 | |
|
0
|
|
|
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
|
||||||
| 23.06.2015, 00:44 [ТС] | ||||||
|
hoggy, выходит она нужна только когда в алгоритм вставляем функцию член-класса? или есть еще какое-то применение?
Добавлено через 1 час 31 минуту Cra3y, этот код
Добавлено через 8 минут извиняюсь... я же ее сам статической сделал и забыл
0
|
||||||
|
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
|
|||||||||||
| 05.03.2017, 17:24 | |||||||||||
|
hoggy, а вы случаем не знаете как через форич ввести данные в вектор пэйров?
Добавлено через 2 часа 1 минуту hoggy, просто у меня уже закончились догадки в чем трабл...
0
|
|||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 05.03.2017, 17:32 | |||||||
1
|
|||||||
|
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
|
|||||||||||
| 05.03.2017, 18:12 | |||||||||||
|
hoggy, хм...почему тогда не работает такая запись:
0
|
|||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 05.03.2017, 20:38 | |||
|
нельзя вызывать методы классов без объектов. это же не просто "свободные" функции. std::bind для методов используется вот так: auto functor = std::bind(имя-метода, объект, аргументы или плейсхолдеры);
1
|
|||
| 05.03.2017, 20:38 | |
|
Помогаю со студенческими работами здесь
16
std::bind
Проверить объект в std::bind на живучесть std::bind и указатель на статическую функцию член класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|