私は.netと同じように関数ポインタを管理するという考えを持っていましたが、おそらくメモリリックが必要だと思います。
action(5);
関数テストで5はどうなりますか?私の意見では、それは永遠にスタックにとどまり、stackoverflow例外として発生する可能性があります
#include <iostream>
union Action
{
void (*action)();
void (*action1)(int);
void operator()(int i)
{
this->action1(i);
}
void operator=(void (*action)())
{
this->action = action;
}
void operator=(void (*action)(int))
{
this->action1 = action;
}
};
void Test()
{
std::cout << "test";
}
int main()
{
Action action;
action = Test;
action(5);
char c;
std::cin >> c;
}