From a49dd60755e48d7c8ebaf22f06177235e22b45b2 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 17 Jan 2025 18:38:46 +0100 Subject: Core/Misc: Remove return type std::enable_if based SFINAE --- src/common/Utilities/EventProcessor.h | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src/common/Utilities/EventProcessor.h') diff --git a/src/common/Utilities/EventProcessor.h b/src/common/Utilities/EventProcessor.h index 7f662e473ca..9c6e50b83da 100644 --- a/src/common/Utilities/EventProcessor.h +++ b/src/common/Utilities/EventProcessor.h @@ -21,6 +21,7 @@ #include "Define.h" #include "Duration.h" #include "Random.h" +#include #include #include @@ -74,7 +75,7 @@ template class LambdaBasicEvent : public BasicEvent { public: - LambdaBasicEvent(T&& callback) : BasicEvent(), _callback(std::move(callback)) { } + explicit LambdaBasicEvent(T&& callback) : BasicEvent(), _callback(std::move(callback)) { } bool Execute(uint64, uint32) override { @@ -83,31 +84,31 @@ public: } private: - T _callback; }; -template -using is_lambda_event = std::enable_if_t>>>; - class TC_COMMON_API EventProcessor { public: EventProcessor() : m_time(0) { } + EventProcessor(EventProcessor const&) = delete; + EventProcessor(EventProcessor&&) = delete; + EventProcessor& operator=(EventProcessor const&) = delete; + EventProcessor& operator=(EventProcessor&&) = delete; ~EventProcessor(); void Update(uint32 p_time); void KillAllEvents(bool force); void AddEvent(BasicEvent* event, Milliseconds e_time, bool set_addtime = true); - template - is_lambda_event AddEvent(T&& event, Milliseconds e_time, bool set_addtime = true) { AddEvent(new LambdaBasicEvent(std::move(event)), e_time, set_addtime); } + template T> + void AddEvent(T&& event, Milliseconds e_time, bool set_addtime = true) { AddEvent(new LambdaBasicEvent(std::forward(event)), e_time, set_addtime); } void AddEventAtOffset(BasicEvent* event, Milliseconds offset) { AddEvent(event, CalculateTime(offset)); } void AddEventAtOffset(BasicEvent* event, Milliseconds offset, Milliseconds offset2) { AddEvent(event, CalculateTime(randtime(offset, offset2))); } - template - is_lambda_event AddEventAtOffset(T&& event, Milliseconds offset) { AddEventAtOffset(new LambdaBasicEvent(std::move(event)), offset); } - template - is_lambda_event AddEventAtOffset(T&& event, Milliseconds offset, Milliseconds offset2) { AddEventAtOffset(new LambdaBasicEvent(std::move(event)), offset, offset2); } + template T> + void AddEventAtOffset(T&& event, Milliseconds offset) { AddEventAtOffset(new LambdaBasicEvent(std::forward(event)), offset); } + template T> + void AddEventAtOffset(T&& event, Milliseconds offset, Milliseconds offset2) { AddEventAtOffset(new LambdaBasicEvent(std::forward(event)), offset, offset2); } void ModifyEventTime(BasicEvent* event, Milliseconds newTime); Milliseconds CalculateTime(Milliseconds t_offset) const { return Milliseconds(m_time) + t_offset; } std::multimap const& GetEvents() const { return m_events; } -- cgit v1.2.3