| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Явное приведение типов |
| Автор: Ivan. 25.4.2006, 09:34 |
| Как привести указатель метода класса к указателю памяти: 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 25.4.2006, 10:37 | ||
|
| Автор: DeadSoul 25.4.2006, 21:30 |
| А что ты хочешь сделать? Может boost::function+boost::bind тебя спасут? |
| Автор: Ivan. 13.12.2006, 18:26 | ||
Решил!
|
| Автор: zabivator 13.12.2006, 19:21 | ||||
Ivan., первое решение:
второе решение:
|