Преглед изворни кода

dispatcher: refine aggregate check

Michele Caini пре 3 година
родитељ
комит
54ca62600b
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      src/entt/signal/dispatcher.hpp

+ 1 - 1
src/entt/signal/dispatcher.hpp

@@ -75,7 +75,7 @@ public:
 
     template<typename... Args>
     void enqueue(Args &&...args) {
-        if constexpr(sizeof...(Args) != 0u && std::is_aggregate_v<Type>) {
+        if constexpr(std::is_aggregate_v<Type> && (sizeof...(Args) != 0u || !std::is_default_constructible_v<Type>)) {
             events.push_back(Type{std::forward<Args>(args)...});
         } else {
             events.emplace_back(std::forward<Args>(args)...);