easyx_framework V1.0.0
基于easyx的c++游戏框架
 
载入中...
搜索中...
未找到
MultiCastDelegate< Args > 模板类 参考

多播委托. 更多...

#include <Delegate.h>

Public 成员函数

void Push (std::function< void(Args...) > callback)
 推入容器
 
template<typename T >
void Push (T *obj, void(T::*func)(Args...))
 
void Remove (std::function< void(Args...)> callback)
 从容器中移除所有相同的函数
 
template<typename T >
void Remove (T *obj, void(T::*func)(Args...))
 从容器中移除所有相同的函数
 
void BroadCast (Args ...args)
 全部执行
 
void operator() (Args... args)
 
template<typename ... Args>
void Push (std::function< void(Args...)> callback)
 允许插入同样类型的事件
 

Private 属性

std::vector< std::function< void(Args...)> > callbacks
 存储所有相同类型参数的函数
 

详细描述

template<typename... Args>
class MultiCastDelegate< Args >

多播委托.

MultiCastDelegate<返回值类型,参数类型...>

参见
DECLARE_MULTI_PARAM_MULTI_DELEGATE_CLASS(name, ...)
DECLARE_NO_PARAM_MULTI_DELEGATE_CLASS(name)

成员函数说明

◆ BroadCast()

template<typename ... Args>
void MultiCastDelegate< Args >::BroadCast ( Args ... args)
inline

全部执行

参数
[in]args函数执行需要的实参

◆ operator()()

template<typename... Args>
void MultiCastDelegate< Args >::operator() ( Args... args)
inline

◆ Push() [1/3]

template<typename... Args>
void MultiCastDelegate< Args >::Push ( std::function< void(Args...) > callback)

推入容器

参数
[in]callback[lambda函数]

◆ Push() [2/3]

template<typename... Args>
template<typename ... Args>
void MultiCastDelegate< Args >::Push ( std::function< void(Args...)> callback)
inline

允许插入同样类型的事件

◆ Push() [3/3]

template<typename... Args>
template<typename T >
void MultiCastDelegate< Args >::Push ( T * obj,
void(T::* func )(Args...) )
inline
参数
[in]obj函数对象
[in]func函数指针

◆ Remove() [1/2]

template<typename ... Args>
void MultiCastDelegate< Args >::Remove ( std::function< void(Args...)> callback)
inline

从容器中移除所有相同的函数

参数
[in]callback[lambda函数]

◆ Remove() [2/2]

template<typename... Args>
template<typename T >
void MultiCastDelegate< Args >::Remove ( T * obj,
void(T::* func )(Args...) )
inline

从容器中移除所有相同的函数

参数
[in]obj函数对象
[in]func函数指针

类成员变量说明

◆ callbacks

template<typename... Args>
std::vector<std::function<void(Args...)> > MultiCastDelegate< Args >::callbacks
private

存储所有相同类型参数的函数