calling a C++ member function
Xin Tong
xerox.time.tech@gmail.com
Wed Jun 13 14:05:00 GMT 2012
On Wed, Jun 13, 2012 at 8:51 AM, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> On Jun 13, 2012 11:56 AM, "Xin Tong" wrote:
>>
>> Function pointers can be used to call functions in C. but for C++
>> member functions. A special function pointer needs to be used, i.e.
>>
>> float (SomeClass::*my_memfunc_ptr)(int, char *);
>>
>> but eventually, my_memfunc_ptr will hold the address of the code of
>> the function it points to. can i set up the calling context myself at
>> this point, i.e. put "this" pointer into rdi, put the arguments into
>> other registers/stacks and jump to the address held in the
>> my_memfunc_ptr. would this work in gcc compiled code , what about
>> other compilers and os linkages ?
>
> Have you seen http://gcc.gnu.org/onlinedocs/gcc/Bound-member-functions.html ?
Ok. did not know that before. it seems member functions are callable
with instruction address. especially with PMF enabled. one can take
the address without an object.
Thanks
Xin
More information about the Gcc-help
mailing list