¿Cómo llamar al puntero a la función miembro, que se ha guardado en un vector de estructura personalizada? [cerrado

Mi pregunta es en realidad con respecto apreguntas formuladas. He probado elanswer dado por @ r3mus n0x también he visto algunas preguntas SO que no me ayudaron a tener una idea clara sobre la situación anterior.

En la publicación dada carece de MCVE, por lo tanto, he intentado un poco y se me ocurrió el siguiente código y con el mismo error que @ user10213044 mencionó en su publicación.

Error msg

error C2065: 'm_func': undeclared identifier

Mi pregunta:

Q1: ¿Podemos realmente almacenar el puntero en algunas de las funciones miembro de una clase (como en el siguiente ejemplo) en su miembro privado (ej. Matriz de vectores)? Si es así, ¿cuál es el motivo del mensaje de error anterior?

Q2: También he intentado escribir dentro del bucle for:

classFuncPtr fun = bindClassPtr->m_func; // compiles
fun(str); // error

me dio:Error msg

error: must use '.*' or '->*' to call pointer-to-member function in 'fun (...)', e.g. '(... ->* fun) (...)'
 fun(str); // error

que no pude entender. ¿Alguien puede decirme qué salió mal en este caso?

l segundo intento fue similar al siguiente caso que usamos para el caso de puntero de funciones normales.

typedef void(*FuncPtr)(const std::string&);
FuncPtr Lambda = [](const std::string& str) { std::cout << str << std::endl; };
Lambda(std::string("Hellow World"));

Aquí está el código que probé:

#include <iostream>
#include <vector>
#include <string>
#include <memory>

cla,ss MyClass;          
typedef void (MyClass::*classFuncPtr)(const std::string&); // function ptr to MyClass::member functions

struct MyBind // bind struct
{
   classFuncPtr m_func;
   explicit MyBind(const classFuncPtr& func): m_func(std::move(func)) {}
};

class MyClass
{
    std::string m_var;
    std::vector<std::unique_ptr<MyBind>> my_binds_;
public:
   MyClass() // constructor 
   {
      my_binds_.emplace_back( std::make_unique<MyBind>( std::move(&MyClass::do_this) ));
      my_binds_.emplace_back( std::make_unique<MyBind>( std::move(&MyClass::do_that) ));
   }

   // two functions to bind
   void  do_this (const std::string& str) { std::cout << "From do this: " << str << std::endl;   }
   void  do_that (const std::string& str) { std::cout << "From do that: " << str << std::endl;   };

   void handle_input(const std::string& str)
   {

      for (const std::unique_ptr<MyBind>& bindClassPtr: my_binds_)
      {
          // how to print passed string str here??              (Q1)
          (bindClassPtr->*m_func)(str);

          /*
          classFuncPtr fun = bindClassPtr->m_func; // compiles   (Q2)
          fun(str); // error
          */
      }
   }
};