I have a table where one of the items is a pointer to member function, e.g.:
class State : public QObject {
QOBJECT
public:
State() {}
~State() {}
int Set_State (uint Object, int New_State);
int Validate_State(int New_State);
};
typedef int (State::* pState_Valid)(int Requested_State);
struct {
int Current_State;
pState_Valid pValidator;
} State_Tbl[] = {
0, &State::Validate_State,
1, &State::Validate_State
};
int State::Validate_State(int Requested_State) {
int Validated_State;
...
return(Validated_State);
}
int State::Set_State(uint Object, int Requested_State) {
int Validated_State;
Validated_State = (*State_Tbl[Object].pValidate_State)(Requested_State);
...
return(Validated_State);
}
The error I get (gnu compiler) on the line that's calling the member function is:
error: invalid use of 'unary*' on pointer to member
What am I doing wrong?
Thanks,
Doug Broadwell
Bookmarks