![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Ivan. |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Как привести указатель метода класса к указателю памяти:
Converting from void (T::*)() to void* а лучше: Converting from void (T::*)() to void (*)(T *) известно, что при вызове метода класса перед перечислением входных параметров вклинивается указатель объекта, поэтому: class T { public: void Func(); }; T t; t.Func(); и void (*Func)(T *); Func = &T::Func; Func(&t); приводят к одному результату, но компилятор не такой дурак, чтобы позволить мне это сделать. Указатель метода не приводится ни к одному промежуточному типу: (void *), (int), ... Этот вопрос можно решить на уровне ASM, но указатель функции лежит в области сода и изменению не подлежит, по этому данное преобразование компелятор должен выполнить на уровне предкомпиляции. Помогите решить этот вопрос -------------------- Я могу ВСЁ, вопрос - сколько времени у меня это займет! |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| DeadSoul |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
А что ты хочешь сделать? Может boost::function+boost::bind тебя спасут?
-------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
| Ivan. |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Решил!
-------------------- Я могу ВСЁ, вопрос - сколько времени у меня это займет! |
|||
|
||||
| zabivator |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
Ivan., первое решение:
второе решение:
Это сообщение отредактировал(а) zabivator - 13.12.2006, 19:22 --------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |