typedef pair eventType; 为什么编译出现异常呢
typedef pair<TObject*, eventHandleType> eventType; 为什么编译出现错误呢
class TObject
{
public:
TObject() { }
virtual ~TObject() { }
};
template <typename RT = void, typename T1 = void, typename T2 = void, typename T3 = void, typename T4 = void, typename T5 = void, typename T6 = void, typename T7 = void, typename T8 = void, typename T9 = void, typename T10 = void>
class TEvent
{
public:
/**
* @brief 事件类型定义
*/
typedef RT (TObject::*eventHandleType)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10);
public:
typedef TEvent type;
typedef pair<TObject*, eventHandleType> eventType;
enum { argNum = 10 };
private:
eventType _event;
public:
TEvent() { _event = make_pair<TObject*, eventHandleType>(0, 0); }
TEvent(TObject* obj, eventHandleType e) { _event = make_pair<TObject*, eventHandleType>(obj, e); }
TEvent(eventType& val):_event(val) { }
TEvent(TEvent& ref) { _event = (eventType)ref; }
void assign(TObject* obj, eventHandleType e) { _event = make_pair<TObject*, eventHandleType>(obj, e); }
bool valid() { return _event.first && _event.second; }
TEvent& operator = (eventType& e) { _event = e; return *this; }
operator eventType() { return _event; }
bool operator == (TEvent& ref) { return this == &ref ? true : _event == (eventType)ref; }
bool operator == (eventType& e) { return _event == e; }