![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Код иллюстрирующий проблему:
Как мне следует грамотно обойти эту проблему? |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Пока что решил это изменив m2 и m4:
Это сообщение отредактировал(а) bsa - 20.10.2009, 16:07 |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
потому что перегрузка функций.
юзай static_cast<...>(&A::m4<H>) |
|||
|
||||
bsa |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
GoldFinch, не помогло. Сделал даже через отдельную переменную-указатель на метод - та же ошибка.
Компилятор GCC-4.4.1 Добавлено @ 11:42 Провел еще изыскания... Так копилируется:
Это сообщение отредактировал(а) bsa - 21.10.2009, 11:51 |
||||||||
|
|||||||||
UnrealMan |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Вложенный bind не рассматривается как обычный функтор, вместо этого у тебя в первом примере получается композиция функций, т.е. в A::m4 передаётся результат, возвращаемый функцией A::m3. Чтобы предотвратить образование композиции, тебе надо использовать boost::protect.
http://www.boost.org/doc/libs/1_40_0/libs/...ml#nested_binds И ещё желательно не забывать про использование template для зависимых имён.
Это сообщение отредактировал(а) UnrealMan - 21.10.2009, 15:18 |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
boost::protect() помог.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |