C1859: Indirection operator is illegal on Pointer To Member operands

[ERROR]

Description

It is illegal to apply indirection '*' operator to Pointer To Member operands.

Example
  class A {

  
  public:

  
    void f(void) {}

  
  };

  
  typedef void (A::*ptrMbrFctType)(void);

  
  void fct0(void){

  
    ptrMbrFctType pmf;

  
    *pmf=A::f; // ERROR

  
  }

  
  void fct1(void){

  
    void (* A::*pmf)(void)=A::f; // ERROR

  
  }

  
Tips

Remove the indirection operator.

  class A {

  
  public:

  
    void f(void) {}

  
  };

  
  typedef void (A::*ptrMbrFctType)(void);

  
  void fct0(void){

  
    ptrMbrFctType pmf;

  
    pmf=&A::f;

  
  }

  
  void fct1(void){

  
    void (A::*pmf)(void)=&A::f;

  
  }