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