![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Mormishka |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
У меня есть функциb
еще есть другая функция
как мне передать в функцию f2 функцию f1, при этом y,z фиксировано ? |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Mormishka, никак. Подобное в С++ решается шаблонами и функторами
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
boost::bind()
Добавлено через 5 минут и 43 секунды тут еще кол-во аргументов не совпадает. или так задумано? Добавлено через 8 минут и 9 секунд стандартное решение при помощи байндеров:
http://liveworkspace.org/code/94182ffea77b...f087f2e80317d3d |
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: нет Всего: 12 |
ну если они фиксированы, может как - то так?
Это сообщение отредактировал(а) null56 - 21.4.2011, 20:35 |
|||
|
||||
Mormishka |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
boostcoder
Да, не совпадает. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
то же, но без шаблона :
Это сообщение отредактировал(а) bsa - 22.4.2011, 13:54 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
mes, я и это тоже имел в виду под "шаблоны". На C, а так же если функция f2 принимает только указатель на функцию, то решения нет.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
bsa, я привел код не для примера, как решить задачу без шаблонов,
а чтоб тс было легче разобраться с биндом ![]() |
|||
|
||||
Mormishka |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
mes,
По-моему вы не совсем меня поняли.
Пусть y и z у меня фиксированы. Мне надо передать в f2 функцию от x.
Все правильно? Что такое "_1" ? Это сообщение отредактировал(а) Mormishka - 22.4.2011, 19:33 |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Mormishka, это все доступно только в будущем стандарте С++. Если у тебя f2 определена так, как ты указал, то работать не будет.
Я уже сказал, для твоей задачи решения нет, если не прибегать к шаблонным функциям и пр. Если ты менять f2 не собираешься (например, это что-то в сторонней библиотеке), то забудь об этом. |
|||
|
||||
Mormishka |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
bsa,
У меня Visual Assist. Я набираю std:: он мне предлагает bind. У меня что будущий стандарт стоит ![]() А вариант с бустом boostcoder, -а ,будет работать ? Проверил, у меня все работает. У меня будущий стандарт! ![]() Это сообщение отредактировал(а) Mormishka - 22.4.2011, 20:08 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
что именно? std::bind() ? поясняйте. а то ощущение такое, что с++ вообще только в будущем стандарте будет работать. и в добавок: стандарт утвердили. ждем печатного издания. обещают к осени. будет работать всегда и везде где работает boost ;) Добавлено через 8 минут и 31 секунду студия 2010? ;) |
|||
|
||||
Mormishka |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
boostcoder,
студия 2010 А как объявить шаблон ?
Это сообщение отредактировал(а) Mormishka - 22.4.2011, 20:55 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
откуда взялось удивление фактом присутствия std::bind() ? ;) обязательно дважды спрашивать/отвечать? мой первый пост смотри ;) |
|||
|
||||
Mormishka |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 25.8.2010 Репутация: нет Всего: нет |
boostcoder,
Подключаю
Выдает кучу ошибок. Причем когда включаю в пустой проект работает. С чем он может конфликтовать?
Это сообщение отредактировал(а) Mormishka - 23.4.2011, 06:45 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |