7#include "Arp/Base/Core/Detail/DelegateFunctorBase.hxx" 
    8namespace Arp::Base::Core
 
   13template <
typename T> 
class StaticFunctor;
 
   16template<
class R, 
class ...A>
 
   17class StaticFunctor<R(A...)> : 
public DelegateFunctorBase<StaticFunctor<R(A...)>>
 
   20    using FunctionPtr = R(*)(A...);
 
   23    StaticFunctor(R(*pFunction)(A...))
 
   24        : pFunction(pFunction)
 
   29    template<
class ...Args>
 
   30    static R Invoke(IDelegateFunctor* pFunctor, Args... args)
 
   32        auto* pThis = 
dynamic_cast<StaticFunctor*
>(pFunctor);
 
   33        return std::invoke(pThis->pFunction, args...);
 
   37    bool EqualsTo(
const StaticFunctor& other)
override 
   39        return this->pFunction == other.pFunction;
 
   43    FunctionPtr pFunction;