主要实现了C#委托的广播功能,没有实现删除委托等功能,关于泛型协C++11中的std::function 变之类功能没有测试。
边查资料边写的,很多说法可能不标准,详细参见参考资料。
参考资料:
不详细解释了,直接上代码吧。
//CallbackDelegate.h
#pragma once
#include <list>
#include <functional>
//委托模板类,其中class... Args为“变长模板形参列表”,相关资料自行百度关键字,是实现C#式委托声明的关键
template <class Ret, class... Args>
class CallbackDelegate
{
public:
//委托中的函数类型
typedef std::func