Форум программистов, компьютерный форум CyberForum.ru

вызов неконстантной функции класса в mem_fun_ref - C++

Восстановить пароль Регистрация
 
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
05.12.2011, 22:46     вызов неконстантной функции класса в mem_fun_ref #1
Привет.

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

Но в моем случае нельзя сделать метод константным. Что делать? Из-за этого юзать обычный цикл?

Добавлено через 5 минут
вот ошибка, которая мне кажется связана именно с констнтностью

Код
d:\programms\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_algo.h:4200: ошибка: no match for call to '(std::binder2nd<std::mem_fun1_ref_t<void, shape::cShape, QPainter*> >) (shape::cShape*&)'

d:\programms\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/backward/binders.h:146: candidates are: typename _Operation::result_type std::binder2nd<_Operation>::operator()(const typename _Operation::first_argument_type&) const [with _Operation = std::mem_fun1_ref_t<void, shape::cShape, QPainter*>]

d:\programms\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/backward/binders.h:152:                 typename _Operation::result_type std::binder2nd<_Operation>::operator()(typename _Operation::first_argument_type&) const [with _Operation = std::mem_fun1_ref_t<void, shape::cShape, QPainter*>]
Добавлено через 14 минут
таак, ошибка оказывается была не в константности, просто надо вызвать mem_fun,у меня же указатель на объект.

Но теперь другой вопрос:
почему работает с неконстантной функцией?
Джосьютис в "c++ стандартная библиотека для профессионалов" писал что нужны константные ф-ии.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 22:46     вызов неконстантной функции класса в mem_fun_ref
Посмотрите здесь:

Вызов функции из класса C++
C++ Вызов функции родительского класса в наследнике
Вызов функции класса по каллбеку C++
Вызов функции в шаблоне класса C++
C++ Вызов функции по указателю из класса
C++ Вызов функции класса. Чего-то не допонял
Вызов глобальной функции из объекта класса C++
Вызов функции вне класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
05.12.2011, 22:48     вызов неконстантной функции класса в mem_fun_ref #2
Цитата Сообщение от PointsEqual Посмотреть сообщение
почему работает с неконстантной функцией?
Джосююттис в "c++ стандартная библиотека для профессионалов" писал что нужны константные ф-ии.
а почему не должна бы работать? в чем смысл такого ограничения
Yandex
Объявления
05.12.2011, 22:48     вызов неконстантной функции класса в mem_fun_ref
Ответ Создать тему
Опции темы

Текущее время: 21:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru