From 9db15981bf5c06093d1904c8d0ac87d8a97fdfeb Mon Sep 17 00:00:00 2001 From: Vraiment Date: Sat, 22 Jul 2017 15:16:41 -0700 Subject: [PATCH] Added support for lambdas in place for EventPolling --- SDL2pp/EventPolling.hh | 4 ++-- tests/test_eventpolling.cc | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/SDL2pp/EventPolling.hh b/SDL2pp/EventPolling.hh index 77cf0fe..16b0613 100644 --- a/SDL2pp/EventPolling.hh +++ b/SDL2pp/EventPolling.hh @@ -70,7 +70,7 @@ namespace SDL2pp { /// //////////////////////////////////////////////////////////// template - bool PollEvent(T& eventHandler) { + bool PollEvent(T&& eventHandler) { SDL_Event event; if (!SDL_PollEvent(&event)) { return false; @@ -120,7 +120,7 @@ namespace SDL2pp { /// //////////////////////////////////////////////////////////// template - int PollAllEvents(T& eventHandler) { + int PollAllEvents(T&& eventHandler) { int result; for (result = 0; PollEvent(eventHandler); result++); return result; diff --git a/tests/test_eventpolling.cc b/tests/test_eventpolling.cc index 7026270..66e4451 100644 --- a/tests/test_eventpolling.cc +++ b/tests/test_eventpolling.cc @@ -77,13 +77,11 @@ BEGIN_TEST(int, char*[]) // With lambda as an event handler { vector events; - auto eventHandler = [&events](const SDL_Event& event) { - events.push_back(event); - }; - const SDL_Event expectedEvent = PushUserEvent(22); - EXPECT_TRUE(PollEvent(eventHandler) == true); + EXPECT_TRUE(PollEvent([&events](const SDL_Event& event) { + events.push_back(event); + }) == true); EXPECT_TRUE(events.size() == 1); const SDL_Event result = events[0]; @@ -91,7 +89,9 @@ BEGIN_TEST(int, char*[]) EXPECT_TRUE(result.user.code == expectedEvent.user.code); // Verify no further events - EXPECT_TRUE(PollEvent(eventHandler) == false); + EXPECT_TRUE(PollEvent([&events](const SDL_Event& event) { + events.push_back(event); + }) == false); EXPECT_TRUE(events.size() == 1); } @@ -159,17 +159,15 @@ BEGIN_TEST(int, char*[]) // With lambda as an event handler { vector handledEvents; - auto eventHandler = [&handledEvents](const SDL_Event& event) { - handledEvents.push_back(event); - }; - vector expectedEvents; for (const auto eventCode : { 37, 88, 42, 63, 23, 19 }) { expectedEvents.push_back(PushUserEvent(eventCode)); } int totalExpectedEvents = static_cast(expectedEvents.size()); - EXPECT_TRUE(PollAllEvents(eventHandler) == totalExpectedEvents); + EXPECT_TRUE(PollAllEvents([&handledEvents](const SDL_Event& event) { + handledEvents.push_back(event); + }) == totalExpectedEvents); EXPECT_TRUE(handledEvents.size() == expectedEvents.size()); for (int n = 0; n < totalExpectedEvents; n++) { @@ -181,7 +179,9 @@ BEGIN_TEST(int, char*[]) } // Verify no further events - EXPECT_TRUE(PollEvent(eventHandler) == false); + EXPECT_TRUE(PollEvent([&handledEvents](const SDL_Event& event) { + handledEvents.push_back(event); + }) == false); EXPECT_TRUE(handledEvents.size() == expectedEvents.size()); }