瀏覽代碼

dispatcher: try to also please g++12

skypjack 1 月之前
父節點
當前提交
b8cb5de8dd
共有 1 個文件被更改,包括 10 次插入6 次删除
  1. 10 6
      test/entt/signal/dispatcher.cpp

+ 10 - 6
test/entt/signal/dispatcher.cpp

@@ -11,10 +11,16 @@ struct non_aggregate {
 };
 };
 
 
 struct receiver {
 struct receiver {
-    static void forward(entt::dispatcher &dispatcher, test::empty &event) {
+    static void forward_empty(entt::dispatcher &dispatcher, test::empty &event) {
         dispatcher.enqueue(event);
         dispatcher.enqueue(event);
     }
     }
 
 
+    static void forward_int(entt::dispatcher &owner, int &value) {
+        for(int next{}; next < value; ++next) {
+            owner.enqueue<int>(value);
+        }
+    }
+
     void receive(const test::empty &) {
     void receive(const test::empty &) {
         ++cnt;
         ++cnt;
     }
     }
@@ -120,7 +126,7 @@ TEST(Dispatcher, StopAndGo) {
     entt::dispatcher dispatcher{};
     entt::dispatcher dispatcher{};
     receiver receiver{};
     receiver receiver{};
 
 
-    dispatcher.sink<test::empty>().connect<&receiver::forward>(dispatcher);
+    dispatcher.sink<test::empty>().connect<&receiver::forward_empty>(dispatcher);
     dispatcher.sink<test::empty>().connect<&receiver::receive>(receiver);
     dispatcher.sink<test::empty>().connect<&receiver::receive>(receiver);
 
 
     dispatcher.enqueue<test::empty>();
     dispatcher.enqueue<test::empty>();
@@ -128,7 +134,7 @@ TEST(Dispatcher, StopAndGo) {
 
 
     ASSERT_EQ(receiver.cnt, 1);
     ASSERT_EQ(receiver.cnt, 1);
 
 
-    dispatcher.sink<test::empty>().disconnect<&receiver::forward>(dispatcher);
+    dispatcher.sink<test::empty>().disconnect<&receiver::forward_empty>(dispatcher);
     dispatcher.update();
     dispatcher.update();
 
 
     ASSERT_EQ(receiver.cnt, 2);
     ASSERT_EQ(receiver.cnt, 2);
@@ -188,9 +194,7 @@ TEST(Dispatcher, AutoQueue) {
     entt::dispatcher dispatcher{};
     entt::dispatcher dispatcher{};
 
 
     // enqueueing the same event type does not invalidate references - see #1303
     // enqueueing the same event type does not invalidate references - see #1303
-    dispatcher.sink<int>().connect<+[](entt::dispatcher &owner, int &value) {
-        for(int next{}; next < value; ++next) { owner.enqueue<int>(value); }
-    }>(dispatcher);
+    dispatcher.sink<int>().connect<&receiver::forward_int>(dispatcher);
 
 
     dispatcher.enqueue<int>(4);
     dispatcher.enqueue<int>(4);
     dispatcher.update<int>();
     dispatcher.update<int>();