[Bf-blender-cvs] [dd8be48466b] temp-geometry-nodes-fields-prototype: cleanup after merge

Jacques Lucke noreply at git.blender.org
Mon Aug 2 13:07:44 CEST 2021


Commit: dd8be48466bd0ecd359b8f5ef9eab17f84a6ef7c
Author: Jacques Lucke
Date:   Mon Aug 2 13:07:31 2021 +0200
Branches: temp-geometry-nodes-fields-prototype
https://developer.blender.org/rBdd8be48466bd0ecd359b8f5ef9eab17f84a6ef7c

cleanup after merge

===================================================================

M	source/blender/blenkernel/BKE_field.hh
M	source/blender/functions/FN_cpp_type.hh
M	source/blender/functions/FN_cpp_type_make.hh

===================================================================

diff --git a/source/blender/blenkernel/BKE_field.hh b/source/blender/blenkernel/BKE_field.hh
index 065bc50f13d..6ba166b111c 100644
--- a/source/blender/blenkernel/BKE_field.hh
+++ b/source/blender/blenkernel/BKE_field.hh
@@ -476,19 +476,27 @@ template<typename T> class FieldRef : public FieldRefBase {
   }
 };
 
+template<typename T> struct FieldRefCPPTypeParam {
+};
+
 class FieldRefCPPType : public CPPType {
  private:
+  const CPPType &field_type_;
   FieldPtr (*get_field_)(const void *field_ref);
   void (*construct_)(void *dst, FieldPtr field);
-  const CPPType &field_type_;
 
  public:
-  FieldRefCPPType(fn::CPPTypeMembers members,
-                  FieldPtr (*get_field)(const void *field_ref),
-                  void (*construct)(void *dst, FieldPtr field),
-                  const CPPType &field_type)
-      : CPPType(members), get_field_(get_field), construct_(construct), field_type_(field_type)
+  template<typename T>
+  FieldRefCPPType(FieldRefCPPTypeParam<FieldRef<T>> /* unused */, StringRef debug_name)
+      : CPPType(fn::CPPTypeParam<FieldRef<T>, CPPTypeFlags::BasicType>(), debug_name),
+        field_type_(CPPType::get<T>())
   {
+    get_field_ = [](const void *field_ref) {
+      return ((const blender::bke::FieldRef<T> *)field_ref)->field();
+    };
+    construct_ = [](void *dst, blender::bke::FieldPtr field) {
+      new (dst) blender::bke::FieldRef<T>(std::move(field));
+    };
   }
 
   const CPPType &field_type() const
@@ -515,14 +523,7 @@ class FieldRefCPPType : public CPPType {
   blender::fn::CPPType::get_impl<blender::bke::FieldRef<FIELD_TYPE>>() \
   { \
     static blender::bke::FieldRefCPPType cpp_type{ \
-        blender::fn::create_cpp_type_members<blender::bke::FieldRef<FIELD_TYPE>, \
-                                             CPPTypeFlags::BasicType>(#DEBUG_NAME), \
-        [](const void *field_ref) { \
-          return ((const blender::bke::FieldRef<FIELD_TYPE> *)field_ref)->field(); \
-        }, \
-        [](void *dst, blender::bke::FieldPtr field) { \
-          new (dst) blender::bke::FieldRef<FIELD_TYPE>(std::move(field)); \
-        }, \
-        blender::fn::CPPType::get<FIELD_TYPE>()}; \
+        blender::bke::FieldRefCPPTypeParam<blender::bke::FieldRef<FIELD_TYPE>>(), \
+        STRINGIFY(DEBUG_NAME)}; \
     return cpp_type; \
   }
diff --git a/source/blender/functions/FN_cpp_type.hh b/source/blender/functions/FN_cpp_type.hh
index 3bc2d1b884f..7277bf99c12 100644
--- a/source/blender/functions/FN_cpp_type.hh
+++ b/source/blender/functions/FN_cpp_type.hh
@@ -138,8 +138,6 @@ class CPPType : NonCopyable, NonMovable {
   template<typename T, CPPTypeFlags Flags> CPPType(CPPTypeParam<T, Flags>, StringRef debug_name);
   virtual ~CPPType() = default;
 
-  virtual ~CPPType() = default;
-
   /**
    * Two types only compare equal when their pointer is equal. No two instances of CPPType for the
    * same C++ type should be created.
diff --git a/source/blender/functions/FN_cpp_type_make.hh b/source/blender/functions/FN_cpp_type_make.hh
index 06c0fa3c1d9..088f6b469f4 100644
--- a/source/blender/functions/FN_cpp_type_make.hh
+++ b/source/blender/functions/FN_cpp_type_make.hh
@@ -253,15 +253,6 @@ CPPType::CPPType(CPPTypeParam<T, Flags> /* unused */, StringRef debug_name)
                                    move_construct_ && move_assign_ && destruct_);
 }
 
-class StandardCPPType : public CPPType {
- public:
-  template<typename T, CPPTypeFlags flags>
-  StandardCPPType(std::string debug_name)
-      : CPPType(create_cpp_type_members<T, flags>(std::move(debug_name)))
-  {
-  }
-};
-
 }  // namespace blender::fn
 
 #define MAKE_CPP_TYPE(IDENTIFIER, TYPE_NAME, FLAGS) \



More information about the Bf-blender-cvs mailing list