Przeglądaj źródła

meta: inline variables

Michele Caini 7 lat temu
rodzic
commit
09e0d2d15b
1 zmienionych plików z 9 dodań i 47 usunięć
  1. 9 47
      src/entt/meta/meta.hpp

+ 9 - 47
src/entt/meta/meta.hpp

@@ -142,74 +142,36 @@ struct meta_type_node final {
 
 template<typename...>
 struct meta_node {
-    static meta_type_node *type;
+    inline static meta_type_node *type = nullptr;
 };
 
 
-template<typename... Type>
-meta_type_node * meta_node<Type...>::type = nullptr;
-
-
 template<typename Type>
 struct meta_node<Type> {
-    static meta_type_node *type;
+    inline static meta_type_node *type = nullptr;
 
     template<typename>
-    static meta_base_node *base;
+    inline static meta_base_node *base = nullptr;
 
     template<typename>
-    static meta_conv_node *conv;
+    inline static meta_conv_node *conv = nullptr;
 
     template<typename>
-    static meta_ctor_node *ctor;
+    inline static meta_ctor_node *ctor = nullptr;
 
     template<auto>
-    static meta_dtor_node *dtor;
+    inline static meta_dtor_node *dtor = nullptr;
 
     template<auto>
-    static meta_data_node *data;
+    inline static meta_data_node *data = nullptr;
 
     template<auto>
-    static meta_func_node *func;
+    inline static meta_func_node *func = nullptr;
 
-    static meta_type_node * resolve() ENTT_NOEXCEPT;
+    inline static meta_type_node * resolve() ENTT_NOEXCEPT;
 };
 
 
-template<typename Type>
-meta_type_node * meta_node<Type>::type = nullptr;
-
-
-template<typename Type>
-template<typename>
-meta_base_node * meta_node<Type>::base = nullptr;
-
-
-template<typename Type>
-template<typename>
-meta_conv_node * meta_node<Type>::conv = nullptr;
-
-
-template<typename Type>
-template<typename>
-meta_ctor_node * meta_node<Type>::ctor = nullptr;
-
-
-template<typename Type>
-template<auto>
-meta_dtor_node * meta_node<Type>::dtor = nullptr;
-
-
-template<typename Type>
-template<auto>
-meta_data_node * meta_node<Type>::data = nullptr;
-
-
-template<typename Type>
-template<auto>
-meta_func_node * meta_node<Type>::func = nullptr;
-
-
 template<typename... Type>
 struct meta_info: meta_node<std::remove_cv_t<std::remove_reference_t<Type>>...> {};