One solution is to make another member function that is non static, that you call, which inturn calls _TriggerFunction,
but that seems messy and not correct.
Sorry I am not on my regular computer, otherwise I would post some actual code, but I hope this explains my situation!
Adding a non static method might be the easiest solution, I can't think of any "proper" way to do it (Allthough i tend to avoid static methods in general).
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
What you do is use boost::function or std::function (if C++11 is available). You can also use any of the other various libraries that provide function/functor wrappers.
In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
(listener->*_TriggerFunction)(.....); // Won't produce any error
I tried that, but it does not fix any thing =(
I tihnk that because it is a static member function, its treated like a standalone function so you just use a standard non-member function pointer.
[/quote]
It is a private function pointer that points to a protected member function for inheritance reasons.
What you do is use boost::function or std::function (if C++11 is available). You can also use any of the other various libraries that provide function/functor wrappers.
[/quote]
That may solve the problem, but all boost is, is a helper library, its not doing anything magical that you cannot do with native c++
Im sorry, I was not very clear =(. The function pointer points to a non-static member function, and I am trying to call that non-static member function(via pointer) in a member static function.
Anyways, the reason I was attempting to do it in a static function was because it was a thread entry function, but I can just change the thread entry function to call a non-static function and loop in there(instead of the static thread entry).
Im sorry, I was not very clear =(. The function pointer points to a non-static member function, and I am trying to call that non-static member function(via pointer) in a member static function.
Ah, I see. Sorry I misunderstood you.
Just a slight pointer on style: don't use identifiers that either start with an underscore followed by an upper case letter or start with two underscores. Identifiers like these are reserved for the compiler, and you're just asking for headaches in the future if you ignore this.