29using Delegate = std::function<T>;
31struct DelegateHandle {
35 bool operator==(
const DelegateHandle& other)
const;
36 bool operator!=(
const DelegateHandle& other)
const;
39 static uint64_t GenerateDelegateID();
40 static uint64_t currentHandle;
46class DelegateMultiElement
49 DelegateMultiElement(Delegate<T>&& inFunction);
51 template<
typename... Args>
52 void Execute(Args&&...args)
const;
62DelegateMultiElement<T>::DelegateMultiElement(Delegate<T>&& inFunction)
67template<
typename... Args>
68void DelegateMultiElement<T>::Execute(Args&&...args)
const
70 func(std::move(args)...);
86 template<
typename... Args>
87 void Execute(Args&&...args);
98 return delegates.ObjectAt(index).GetHandle();
106 for (i = delegates.NumObjects(); i > 0; i--) {
109 if (elem.GetHandle() == handle) {
110 delegates.RemoveObjectAt(i);
117template<
typename... Args>
118void MulticastDelegate<T>::Execute(Args&&...args)
122 for (i = 1; i <= delegates.NumObjects(); i++) {
125 element.Execute(std::move(args)...);
Definition container.h:85