Browse Source

config: being empty isn't enough for ETO, type must be default constructible

Michele Caini 6 years ago
parent
commit
94d15ebbef
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/entt/config/config.h

+ 2 - 2
src/entt/config/config.h

@@ -44,10 +44,10 @@
 
 
 #ifndef ENTT_DISABLE_ETO
 #ifndef ENTT_DISABLE_ETO
 #   include <type_traits>
 #   include <type_traits>
-#   define ENTT_ENABLE_ETO(Type) std::is_empty_v<Type>
+#   define ENTT_ENABLE_ETO(Type) (std::is_default_constructible_v<Type> && std::is_empty_v<Type>)
 #else
 #else
 #   // sfinae-friendly definition
 #   // sfinae-friendly definition
-#   define ENTT_ENABLE_ETO(Type) (false && std::is_empty_v<Type>)
+#   define ENTT_ENABLE_ETO(Type) (false && std::is_void_v<Type>)
 #endif
 #endif