dispatcher: try to also please g++12

This commit is contained in:
skypjack
2026-01-22 17:54:02 +01:00
parent beda424de1
commit b8cb5de8dd

View File

@@ -11,10 +11,16 @@ struct non_aggregate {
};
struct receiver {
static void forward(entt::dispatcher &dispatcher, test::empty &event) {
static void forward_empty(entt::dispatcher &dispatcher, test::empty &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 &) {
++cnt;
}
@@ -120,7 +126,7 @@ TEST(Dispatcher, StopAndGo) {
entt::dispatcher dispatcher{};
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.enqueue<test::empty>();
@@ -128,7 +134,7 @@ TEST(Dispatcher, StopAndGo) {
ASSERT_EQ(receiver.cnt, 1);
dispatcher.sink<test::empty>().disconnect<&receiver::forward>(dispatcher);
dispatcher.sink<test::empty>().disconnect<&receiver::forward_empty>(dispatcher);
dispatcher.update();
ASSERT_EQ(receiver.cnt, 2);
@@ -188,9 +194,7 @@ TEST(Dispatcher, AutoQueue) {
entt::dispatcher dispatcher{};
// 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.update<int>();