Commit: 7a7592e6158e7f6b92e0f149473ddc418d37c295 Author: Jacques Lucke Date: Tue Jul 2 18:01:06 2019 +0200 Branches: functions https://developer.blender.org/rB7a7592e6158e7f6b92e0f149473ddc418d37c295
comment on CPPTypeInfo =================================================================== M source/blender/functions/backends/tuple/cpp_types.hpp =================================================================== diff --git a/source/blender/functions/backends/tuple/cpp_types.hpp b/source/blender/functions/backends/tuple/cpp_types.hpp index 4130264a424..2ba6badf962 100644 --- a/source/blender/functions/backends/tuple/cpp_types.hpp +++ b/source/blender/functions/backends/tuple/cpp_types.hpp @@ -1,5 +1,13 @@ #pragma once +/** + * The CPPTypeInfo class is a type extension for the C++ backend. It contains run-time type + * information for an arbitrary C++ type. + * + * Usually, the class does not have to be subclassed manually, because there is a template that + * implements all methods for any C++ type automatically. + */ + #include "FN_core.hpp" namespace FN { @@ -12,14 +20,48 @@ class CPPTypeInfo : public TypeExtension { { } + /** + * Get the size of the type in bytes. + */ virtual uint size_of_type() const = 0; + + /** + * Construct a default version of that type at the given pointer. + */ virtual void construct_default(void *ptr) const = 0; + + /** + * Destruct the value at the given pointer. + */ virtual void destruct_type(void *ptr) const = 0; + + /** + * Copy the value from src to dst. The destination buffer already contains another instance of + * the same type which should be overriden. + */ virtual void copy_to_initialized(void *src, void *dst) const = 0; + + /** + * Copy the value from src to dst. The destination buffer contains uninitialized memory. + */ virtual void copy_to_uninitialized(void *src, void *dst) const = 0; + + /** + * Copy the value from src to dst and destroy the original value in src. The destination buffer + * already contains another instance of the same type which should be overriden. + */ virtual void relocate_to_initialized(void *src, void *dst) const = 0; + + /** + * Copy the value from src to dst and destroy the original value in src. The destination buffer + * contains uninitialized memory. + */ virtual void relocate_to_uninitialized(void *src, void *dst) const = 0; + /** + * Return true when the type can be destructed without doing anything. Otherwise false. + * This is just a hint to improve performance in some cases. + */ virtual bool trivially_destructible() const = 0; }; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs