Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
1

mem_fun и mem_fun_ref

13.07.2013, 00:47. Просмотров 2214. Ответов 24
Метки нет (Все метки)

Здорова! Есть задачка : "Реализуйте и протестируйте четыре функции mem_fun() и mem_fun_ref() (параграф 18.4.4.2)."
Ну там наверно ошиблись не 4 а две функции да пусть две функции будет. Ну и как же мне их реализовать? Чем они хоть отличаются? Это похоже одни и те же функции, токо первая с указателями работает, а вторая с объектами ли хз.
В общем свои нужно написать, наверно свой шаблон нужно написать, а как его делать я даже не представляю. Похоже тяжелая задачка.

Добавлено через 1 минуту
Кто не знает эти функции делают функциональные объект из членов класса.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2013, 00:47
Ответы с готовыми решениями:

STL: не работает mem_fun_ref
Здравствуйте! Который час корплю над этим кодом и не могу разобраться ptr_fun работает...

Вызов неконстантной функции класса в mem_fun_ref
Привет. мне нужно вызвать функцию класса в mem_fun_ref, но ей, как известно требуется чтобы...

Std::bind, std::mem_fun, std::mem_fn
В чем разница между функциями std::bind, std::mem_fun, std::mem_fn?


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

Или воспользуйтесь поиском по форуму:
24
gray_fox
What a waste!
1554 / 1259 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
13.07.2013, 13:36 21
Цитата Сообщение от ForEveR Посмотреть сообщение
gray_fox, В STL как раз их 4. И без хитрых ухищрений два не сделать, ибо
Ну я попробовал, у меня так получилось: http://ideone.com/3wKCpl ... Возможно, дело в gcc конечно.
1
Olivеr
413 / 409 / 95
Регистрация: 06.10.2011
Сообщений: 832
13.07.2013, 15:23 22
http://ideone.com/S15nHF
0
gray_fox
13.07.2013, 15:36
  #23

Не по теме:

Цитата Сообщение от Olivеr Посмотреть сообщение
http://ideone.com/S15nHF
Зачем перегружать operator () , если константный вариант сделает тоже самое?

0
Olivеr
13.07.2013, 15:46
  #24

Не по теме:

Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


Зачем перегружать operator () , если константный вариант сделает тоже самое?

а вдруг кто-то напишет так?)
C++
1
const auto str_len = mem_fun_ptr(&std::string::length);
тогда без
C++
1
ReturnType operator () (Type *p) const;
не заведется

я заметил, что у вас аналогичная идея, но const стоит в другом месте
C++
1
mem_fun_t<const T>
C++
1
mem_fun_t<T const, R, Args...>
в данном случае это не имеет значения? Ведь T не может быть указателем потому, что указатель - это не класс:
C++
1
return (objectPtr->*methodPtr_)(std::forward<Args>(args)...)
- выдаст ошибку если T - указатель.
Я прав?

0
gray_fox
What a waste!
1554 / 1259 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
13.07.2013, 15:56 25

Не по теме:

Цитата Сообщение от Olivеr Посмотреть сообщение
а вдруг кто-то напишет так?)
Код C++
1
const auto str_len = mem_fun_ptr(&std::string::length);
тогда без
Код C++
1
ReturnType operator () (Type *p) const;
не заведется
Я имел ввиду как раз оставить константный метод, другой не нужен.



Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от Olivеr Посмотреть сообщение
я заметил, что у вас аналогичная идея, но const стоит в другом месте
Код C++
1
mem_fun_t<const T>
Код C++
1
mem_fun_t<T const, R, Args...>
в данном случае это не имеет значения?
не имеет - это абсолютно тоже самое.



Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от Olivеr Посмотреть сообщение
Ведь T не может быть указателем потому, что указатель - это не класс:
Код C++
1
return (objectPtr->*methodPtr_)(std::forward<Args>(args)...)
- выдаст ошибку если T - указатель.
Я прав?
да, будет ошибка при истанциировании.

1
13.07.2013, 15:56
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru