Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: Pointer to class member function?
From 
 
Richard Foltyn <[email protected]> 
To 
 
[email protected] 
Subject 
 
st: Pointer to class member function? 
Date 
 
Fri, 3 May 2013 15:36:56 +0200 
Dear Listers,
I need to create a pointer to a class member function, but cannot
figure out how to do that. The usual way of using &func() does not
work, and neither do other "obvious" alternatives such as &this.func()
or &(this.func)().
Here is a demo code that does nothing useful to illustrate what I am
trying to achieve:
mata
class testClass {
        void run1()
        void run2()
        real scalar func()
}
real scalar testClass::func(real scalar arg) {
    return(arg)
}
void testClass::run2(pointer(real scalar function) scalar f, ///
    real scalar arg) {
    (*f)(arg)
}
void testClass::run1() {
    this.run2(&func(), 1)
}
foo = testClass()
foo.run1()
end
Running this I get the error message:
: foo.run1()
       testClass::run1():  3499  func() not found [3]
                 <istmt>:     -  function returned error [1]
Thanks for your help!
Richard
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/