Я хотел реализовать событие С# на С++, чтобы увидеть, могу ли я это сделать. Я застрял, я знаю, что дно ошибочно, но я понимаю, что моя самая большая проблема - это...
Как я могу перегрузить оператор ()
, который находится в T
, в данном случае int func(float)
? Я не могу? Могу я? Могу ли я реализовать хорошую альтернативу?
#include <deque>
using namespace std;
typedef int(*MyFunc)(float);
template<class T>
class MyEvent
{
deque<T> ls;
public:
MyEvent& operator +=(T t)
{
ls.push_back(t);
return *this;
}
};
static int test(float f){return (int)f; }
int main(){
MyEvent<MyFunc> e;
e += test;
}