/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuroraUtils.hpp File: auROXTLUtils.hpp Date: 2021-6-9 Author: Reece ***/ #pragma once #if defined(__has_include) #if __has_include() && defined(AURORA_PLATFORM_WIN32) #include #endif #if __has_include() #include #endif #if __has_include() #include #endif #if __has_include() #include #endif #endif #if defined(AURORA_ARCH_X64) #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include struct IAuNullDelegate { virtual void OnCall() = 0; }; struct AuNullCallback { const AuVoidFunc voidFunc; const AuSPtr callbackFunc; AU_DEFINE_CTOR_ONE(AuNullCallback, (AuVoidFunc, voidFunc)); AU_DEFINE_CTOR_ONE(AuNullCallback, (AuSPtr, callbackFunc)); inline void operator()() { if (voidFunc) { voidFunc(); } else if (callbackFunc) { callbackFunc->OnCall(); } } };