Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
1

Адаптер функции bind()

19.08.2015, 22:04. Показов 1512. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Читаю у Липпмана про адаптер bind, ...какие-то знакоместа. Компилятор на них ругается, я тоже.
Вывести тип на создаваемый объект он тоже не может, пример из книги.

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <functional>
using namespace std;
bool check_size(const string &str, string::size_type sz){
    return str.size() < sz;
}
int main(){
    auto check6 = bind(check_size, _1,6);
    return 0;
}
||=== Build: Debug in asd (compiler: GNU GCC Compiler) ===|
In function 'int main()':|
error: '_1' was not declared in this scope|
note: suggested alternative:|
note: 'std:laceholders::_1'|
error: unable to deduce 'auto' from '<expression error>'|
warning: unused variable 'check6' [-Wunused-variable]|
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2015, 22:04
Ответы с готовыми решениями:

Перегруженные функции и bind
Привет всем! В классе QPushButton есть две версии функции 1. void setGeometry(int x, int y,...

MySQl BIND
Здравствуйте!!! как сделать бинд в mysql connector c++? driver = get_driver_instance();...

bind + map
Вопрос, почему это не работает? Вроде же все правильно вызывается.int main() { using map_t =...

std::bind
Можно ли, и если да, то как с помощью этой функции сделать следующее: auto var=std::bind(&amp;f,...

5
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
19.08.2015, 22:09 2
Лучший ответ Сообщение было отмечено Ilot как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <functional>
 
// не имейте такой привычки
// и не будет у вас глупых проблем
//using namespace std;
 
bool check_size(const std::string &str, std::string::size_type sz){
    return str.size() < sz;
}
int main(){
    auto check6 = std::bind(check_size, std::placeholders::_1,6);
    return 0;
}
1
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
20.08.2015, 01:42 3
Цитата Сообщение от hoggy Посмотреть сообщение
C++
1
2
3
4
int main(){
    auto check6 = std::bind(check_size, std::placeholders::_1,6);
    return 0;
}
Думаю, нормальной практикой будет добавить
C++
1
2
3
4
5
6
int main()
{   using namespcae std::placeholders; // вот эту директиву.
 
    auto check6 = std::bind(check_size, _1, 6);
    return 0;
}
А от using namespace std; действительно, — стоит воздержаться.

Цитата Сообщение от dzrkot Посмотреть сообщение
note: suggested alternative:|
note: 'std:: placeholders::_1'|
Нехорошо игнорировать то, что может подсказать компилятор. Какими же будут ваши действия, когда он будет не в состоянии поведать в чем проблема?

Не по теме:

Эх, кого я обманываю, concepts на подходе, и 150-этажные template's errors канут в лету :cry:

1
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
20.08.2015, 05:40 4
Цитата Сообщение от gromo Посмотреть сообщение
Думаю, нормальной практикой будет добавить
Вы мне это зачем сообщаете?
Я ортогонален стилям и легко читаю их суржик.
Примеры-иллюстрации должны быть красноречивыми, что бы у нубов не возникало глупых вопросов.
1
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
20.08.2015, 14:09 5
hoggy, я здесь для ТС изъяснялся, а ваш примерчик процитировал чисто для иллюстрации. Прошу прощения, если как-то задел ваши интересы.
1
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
20.08.2015, 15:40  [ТС] 6
Цитата Сообщение от gromo Посмотреть сообщение
Нехорошо игнорировать то, что может подсказать компилятор. Какими же будут ваши действия, когда он будет не в состоянии поведать в чем проблема?
честно после работы уже устал, голова не соображала, всем спасибо
0
20.08.2015, 15:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2015, 15:40
Помогаю со студенческими работами здесь

Где применяется bind
Можете пожалуйста привести пример, где boost::bind (или сейчас уже std::bind) необходим и без него...

Bind + string::front
Почему я не могу это забиндить ?:#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt;...

Передача std::bind в функцию
Ребята, помогите разобраться с 28 строкой. Глубоко не копал, но должно ведь компилиться :) ...

Std::bind с контролем типом
В общем, нужно реализовать аналог std::bind, который 1. Переводит void (*callback)(Args...) в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru