c++17
std::invoke
#include <iostream>
#include <functional>
using namespace std;
class MyClass {
public:
int memberVariable = 10;
void memberFunction(int a, int b) {
std::cout << "Member function called! a:" << a << " b:" << b << std::endl;
}
};
int main() {
MyClass obj;
void (MyClass::*funcPtr)(int,int) = &MyClass::memberFunction;
std::invoke(funcPtr, obj,10,20);
int MyClass::*v = &MyClass::memberVariable;
int value = std::invoke(v, obj);
std::cout << "Value: " << value << std::endl;
return 0;
}