|
Blender
V2.93
|
#include <FN_cpp_type.hh>
Inherits blender::NonCopyable, and blender::NonMovable.
Public Types | |
| using | ConstructDefaultF = void(*)(void *ptr) |
| using | ConstructDefaultNF = void(*)(void *ptr, int64_t n) |
| using | ConstructDefaultIndicesF = void(*)(void *ptr, IndexMask mask) |
| using | DestructF = void(*)(void *ptr) |
| using | DestructNF = void(*)(void *ptr, int64_t n) |
| using | DestructIndicesF = void(*)(void *ptr, IndexMask mask) |
| using | CopyToInitializedF = void(*)(const void *src, void *dst) |
| using | CopyToInitializedNF = void(*)(const void *src, void *dst, int64_t n) |
| using | CopyToInitializedIndicesF = void(*)(const void *src, void *dst, IndexMask mask) |
| using | CopyToUninitializedF = void(*)(const void *src, void *dst) |
| using | CopyToUninitializedNF = void(*)(const void *src, void *dst, int64_t n) |
| using | CopyToUninitializedIndicesF = void(*)(const void *src, void *dst, IndexMask mask) |
| using | MoveToInitializedF = void(*)(void *src, void *dst) |
| using | MoveToInitializedNF = void(*)(void *src, void *dst, int64_t n) |
| using | MoveToInitializedIndicesF = void(*)(void *src, void *dst, IndexMask mask) |
| using | MoveToUninitializedF = void(*)(void *src, void *dst) |
| using | MoveToUninitializedNF = void(*)(void *src, void *dst, int64_t n) |
| using | MoveToUninitializedIndicesF = void(*)(void *src, void *dst, IndexMask mask) |
| using | RelocateToInitializedF = void(*)(void *src, void *dst) |
| using | RelocateToInitializedNF = void(*)(void *src, void *dst, int64_t n) |
| using | RelocateToInitializedIndicesF = void(*)(void *src, void *dst, IndexMask mask) |
| using | RelocateToUninitializedF = void(*)(void *src, void *dst) |
| using | RelocateToUninitializedNF = void(*)(void *src, void *dst, int64_t n) |
| using | RelocateToUninitializedIndicesF = void(*)(void *src, void *dst, IndexMask mask) |
| using | FillInitializedF = void(*)(const void *value, void *dst, int64_t n) |
| using | FillInitializedIndicesF = void(*)(const void *value, void *dst, IndexMask mask) |
| using | FillUninitializedF = void(*)(const void *value, void *dst, int64_t n) |
| using | FillUninitializedIndicesF = void(*)(const void *value, void *dst, IndexMask mask) |
| using | DebugPrintF = void(*)(const void *value, std::stringstream &ss) |
| using | IsEqualF = bool(*)(const void *a, const void *b) |
| using | HashF = uint64_t(*)(const void *value) |
Static Public Member Functions | |
| template<typename T > | |
| static const CPPType & | get () |
Friends | |
| bool | operator== (const CPPType &a, const CPPType &b) |
| bool | operator!= (const CPPType &a, const CPPType &b) |
Definition at line 76 of file FN_cpp_type.hh.
| using blender::fn::CPPType::ConstructDefaultF = void (*)(void *ptr) |
Definition at line 78 of file FN_cpp_type.hh.
| using blender::fn::CPPType::ConstructDefaultIndicesF = void (*)(void *ptr, IndexMask mask) |
Definition at line 80 of file FN_cpp_type.hh.
| using blender::fn::CPPType::ConstructDefaultNF = void (*)(void *ptr, int64_t n) |
Definition at line 79 of file FN_cpp_type.hh.
| using blender::fn::CPPType::CopyToInitializedF = void (*)(const void *src, void *dst) |
Definition at line 86 of file FN_cpp_type.hh.
| using blender::fn::CPPType::CopyToInitializedIndicesF = void (*)(const void *src, void *dst, IndexMask mask) |
Definition at line 88 of file FN_cpp_type.hh.
| using blender::fn::CPPType::CopyToInitializedNF = void (*)(const void *src, void *dst, int64_t n) |
Definition at line 87 of file FN_cpp_type.hh.
| using blender::fn::CPPType::CopyToUninitializedF = void (*)(const void *src, void *dst) |
Definition at line 90 of file FN_cpp_type.hh.
| using blender::fn::CPPType::CopyToUninitializedIndicesF = void (*)(const void *src, void *dst, IndexMask mask) |
Definition at line 92 of file FN_cpp_type.hh.
| using blender::fn::CPPType::CopyToUninitializedNF = void (*)(const void *src, void *dst, int64_t n) |
Definition at line 91 of file FN_cpp_type.hh.
| using blender::fn::CPPType::DebugPrintF = void (*)(const void *value, std::stringstream &ss) |
Definition at line 116 of file FN_cpp_type.hh.
| using blender::fn::CPPType::DestructF = void (*)(void *ptr) |
Definition at line 82 of file FN_cpp_type.hh.
| using blender::fn::CPPType::DestructIndicesF = void (*)(void *ptr, IndexMask mask) |
Definition at line 84 of file FN_cpp_type.hh.
| using blender::fn::CPPType::DestructNF = void (*)(void *ptr, int64_t n) |
Definition at line 83 of file FN_cpp_type.hh.
| using blender::fn::CPPType::FillInitializedF = void (*)(const void *value, void *dst, int64_t n) |
Definition at line 110 of file FN_cpp_type.hh.
| using blender::fn::CPPType::FillInitializedIndicesF = void (*)(const void *value, void *dst, IndexMask mask) |
Definition at line 111 of file FN_cpp_type.hh.
| using blender::fn::CPPType::FillUninitializedF = void (*)(const void *value, void *dst, int64_t n) |
Definition at line 113 of file FN_cpp_type.hh.
| using blender::fn::CPPType::FillUninitializedIndicesF = void (*)(const void *value, void *dst, IndexMask mask) |
Definition at line 114 of file FN_cpp_type.hh.
| using blender::fn::CPPType::HashF = uint64_t (*)(const void *value) |
Definition at line 118 of file FN_cpp_type.hh.
| using blender::fn::CPPType::IsEqualF = bool (*)(const void *a, const void *b) |
Definition at line 117 of file FN_cpp_type.hh.
| using blender::fn::CPPType::MoveToInitializedF = void (*)(void *src, void *dst) |
Definition at line 94 of file FN_cpp_type.hh.
| using blender::fn::CPPType::MoveToInitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask) |
Definition at line 96 of file FN_cpp_type.hh.
| using blender::fn::CPPType::MoveToInitializedNF = void (*)(void *src, void *dst, int64_t n) |
Definition at line 95 of file FN_cpp_type.hh.
| using blender::fn::CPPType::MoveToUninitializedF = void (*)(void *src, void *dst) |
Definition at line 98 of file FN_cpp_type.hh.
| using blender::fn::CPPType::MoveToUninitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask) |
Definition at line 100 of file FN_cpp_type.hh.
| using blender::fn::CPPType::MoveToUninitializedNF = void (*)(void *src, void *dst, int64_t n) |
Definition at line 99 of file FN_cpp_type.hh.
| using blender::fn::CPPType::RelocateToInitializedF = void (*)(void *src, void *dst) |
Definition at line 102 of file FN_cpp_type.hh.
| using blender::fn::CPPType::RelocateToInitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask) |
Definition at line 104 of file FN_cpp_type.hh.
| using blender::fn::CPPType::RelocateToInitializedNF = void (*)(void *src, void *dst, int64_t n) |
Definition at line 103 of file FN_cpp_type.hh.
| using blender::fn::CPPType::RelocateToUninitializedF = void (*)(void *src, void *dst) |
Definition at line 106 of file FN_cpp_type.hh.
| using blender::fn::CPPType::RelocateToUninitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask) |
Definition at line 108 of file FN_cpp_type.hh.
| using blender::fn::CPPType::RelocateToUninitializedNF = void (*)(void *src, void *dst, int64_t n) |
Definition at line 107 of file FN_cpp_type.hh.
|
inline |
Definition at line 172 of file FN_cpp_type.hh.
References BLI_assert, and is_power_of_2_i().
|
inline |
Required memory alignment for an instance of this type.
C++ equivalent: alignof(T);
Definition at line 291 of file FN_cpp_type.hh.
Referenced by compute_geometry(), blender::bke::ReadAttribute::initialize_span(), blender::bke::ConstantReadAttribute::initialize_span(), blender::bke::WriteAttribute::initialize_span(), blender::fn::mf_network_optimization::prepare_params_for_constant_folding(), and blender::fn::tests::TEST().
|
inline |
Call the default constructor at the given memory location. The memory should be uninitialized before this method is called. For some trivial types (like int), this method does nothing.
C++ equivalent: new (ptr) T;
Definition at line 329 of file FN_cpp_type.hh.
References BLI_assert, pointer_can_point_to_instance(), and ptr.
Referenced by blender::fn::GVArray::get_single_to_uninitialized(), blender::fn::GVArrayForGVVectorArrayIndex::get_to_uninitialized_impl(), and blender::fn::tests::TEST().
|
inline |
Definition at line 343 of file FN_cpp_type.hh.
References BLI_assert, mask(), and ptr.
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 336 of file FN_cpp_type.hh.
References BLI_assert, pointer_can_point_to_instance(), and ptr.
Referenced by blender::bke::WriteAttribute::initialize_span(), and blender::fn::tests::TEST().
|
inline |
Copy an instance of this type from src to dst.
C++ equivalent: dst = src;
Definition at line 390 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::fn::GVArrayForGSpan::get_impl(), blender::fn::GVArrayForSingleValueRef::get_impl(), blender::fn::GVArrayForSingleValueRef::get_single_impl(), blender::fn::GVVectorArrayForGVectorArray::get_vector_element_impl(), blender::fn::GVVectorArrayForSingleGSpan::get_vector_element_impl(), blender::bke::TemporaryWriteAttribute::set_internal(), and blender::fn::tests::TEST().
|
inline |
Definition at line 408 of file FN_cpp_type.hh.
References BLI_assert, and mask().
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 399 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::nodes::attribute_convert_calc(), blender::nodes::fill_new_attribute(), blender::bke::join_attributes(), and blender::fn::tests::TEST().
|
inline |
Copy an instance of this type from src to dst.
The memory pointed to by dst should be uninitialized.
C++ equivalent: new (dst) T(src);
Definition at line 425 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::fn::GVectorArray::append(), blender::bke::TemporaryWriteAttribute::get_internal(), blender::bke::ConstantReadAttribute::get_internal(), blender::fn::GVArrayForGSpan::get_to_uninitialized_impl(), blender::fn::GVArrayForSingleValueRef::get_to_uninitialized_impl(), initialize_group_input(), and blender::fn::tests::TEST().
|
inline |
Definition at line 443 of file FN_cpp_type.hh.
References BLI_assert, and mask().
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 434 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 634 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
|
inline |
Get a pointer to a constant value of this type. The specific value depends on the type. It is usually a zero-initialized or default constructed value.
Definition at line 657 of file FN_cpp_type.hh.
Referenced by GeometryComponent::attribute_get_constant_for_read(), and initialize_group_input().
|
inline |
Call the destructor on the given instance of this type. The pointer must not be nullptr.
For some trivial types, this does nothing.
C++ equivalent: ptr->~T();
Definition at line 358 of file FN_cpp_type.hh.
References BLI_assert, pointer_can_point_to_instance(), and ptr.
Referenced by GeometryComponent::attribute_get_constant_for_read_converted(), blender::fn::GMutablePointer::destruct(), blender::fn::GVectorArray::extend(), blender::fn::GVArray::get_impl(), blender::fn::tests::TEST(), and blender::bke::ConstantReadAttribute::~ConstantReadAttribute().
|
inline |
Definition at line 379 of file FN_cpp_type.hh.
|
inline |
Definition at line 372 of file FN_cpp_type.hh.
References BLI_assert, mask(), and ptr.
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 365 of file FN_cpp_type.hh.
References BLI_assert, pointer_can_point_to_instance(), and ptr.
Referenced by blender::fn::tests::TEST(), blender::fn::GVectorArray::~GVectorArray(), blender::bke::ReadAttribute::~ReadAttribute(), blender::bke::TemporaryWriteAttribute::~TemporaryWriteAttribute(), and blender::bke::WriteAttribute::~WriteAttribute().
|
inline |
Copy the given value to the first n elements in an array starting at dst.
Other instances of the same type should live in the array before this method is called.
Definition at line 597 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by GeometryComponent::attribute_try_get_for_output(), and blender::fn::tests::TEST().
|
inline |
Definition at line 605 of file FN_cpp_type.hh.
References BLI_assert, and mask().
Referenced by blender::fn::tests::TEST().
|
inline |
Copy the given value to the first n elements in an array starting at dst.
The array should be uninitialized before this method is called.
Definition at line 618 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::bke::ConstantReadAttribute::initialize_span(), and blender::fn::tests::TEST().
|
inline |
Definition at line 626 of file FN_cpp_type.hh.
References BLI_assert, and mask().
Referenced by blender::fn::CustomMF_GenericConstant::call(), and blender::fn::tests::TEST().
|
static |
Referenced by blender::nodes::GeoNodeExecParams::set_output().
|
inline |
Definition at line 662 of file FN_cpp_type.hh.
References blender::get_default_hash().
|
inline |
Definition at line 647 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::nodes::get_geometry_element_ids_as_uints(), and blender::fn::CustomMF_GenericConstant::hash().
|
inline |
Definition at line 667 of file FN_cpp_type.hh.
Referenced by blender::fn::GVectorArray_TypedMutableRef< T >::GVectorArray_TypedMutableRef(), blender::fn::GMutablePointer::is_type(), blender::fn::GPointer::is_type(), blender::fn::tests::TEST(), blender::fn::GSpan::typed(), blender::fn::GMutableSpan::typed(), blender::bke::TypedReadAttribute< T >::TypedReadAttribute(), and blender::bke::TypedWriteAttribute< T >::TypedWriteAttribute().
|
inline |
Definition at line 640 of file FN_cpp_type.hh.
References Freestyle::a, BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::fn::CustomMF_GenericConstant::equals().
|
inline |
When true, the destructor does not have to be called on this type. This can sometimes be used for optimization purposes.
C++ equivalent: std::is_trivially_destructible_v<T>;
Definition at line 303 of file FN_cpp_type.hh.
Referenced by blender::fn::GVectorArray::~GVectorArray().
|
inline |
Move an instance of this type from src to dst.
The memory pointed to by dst should be initialized.
C++ equivalent: dst = std::move(src);
Definition at line 460 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
|
inline |
Definition at line 478 of file FN_cpp_type.hh.
References BLI_assert, and mask().
|
inline |
Definition at line 469 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by OutputAttributePtr::save().
|
inline |
Move an instance of this type from src to dst.
The memory pointed to by dst should be uninitialized.
C++ equivalent: new (dst) T(std::move(src));
Definition at line 495 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
|
inline |
Definition at line 513 of file FN_cpp_type.hh.
References BLI_assert, and mask().
|
inline |
Definition at line 504 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
|
inline |
Returns the name of the type for debugging purposes. This name should not be used as identifier.
Definition at line 269 of file FN_cpp_type.hh.
Referenced by blender::nodes::add_implicit_conversion(), OutputAttributePtr::save(), and blender::fn::MFDataType::to_string().
|
inline |
Definition at line 316 of file FN_cpp_type.hh.
References pointer_has_valid_alignment(), and ptr.
Referenced by construct_default(), construct_default_n(), copy_to_initialized(), copy_to_initialized_n(), copy_to_uninitialized(), copy_to_uninitialized_n(), debug_print(), destruct(), destruct_n(), fill_initialized(), fill_uninitialized(), hash(), is_equal(), move_to_initialized(), move_to_initialized_n(), move_to_uninitialized(), move_to_uninitialized_n(), relocate_to_initialized(), relocate_to_initialized_n(), relocate_to_uninitialized(), and relocate_to_uninitialized_n().
|
inline |
Returns true, when the given pointer fulfills the alignment requirement of this type.
Definition at line 311 of file FN_cpp_type.hh.
References ptr.
Referenced by blender::fn::GMutableSpan::GMutableSpan(), blender::fn::GSpan::GSpan(), and pointer_can_point_to_instance().
|
inline |
Relocates an instance of this type from src to dst. src will point to uninitialized memory afterwards.
C++ equivalent: dst = std::move(src); src->~T();
Definition at line 530 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 548 of file FN_cpp_type.hh.
References BLI_assert, and mask().
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 539 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::fn::tests::TEST().
|
inline |
Relocates an instance of this type from src to dst. src will point to uninitialized memory afterwards.
C++ equivalent: new (dst) T(std::move(src)) src->~T();
Definition at line 565 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 583 of file FN_cpp_type.hh.
References BLI_assert, and mask().
Referenced by blender::fn::tests::TEST().
|
inline |
Definition at line 574 of file FN_cpp_type.hh.
References BLI_assert, and pointer_can_point_to_instance().
Referenced by blender::fn::tests::TEST().
|
inline |
Required memory in bytes for an instance of this type.
C++ equivalent: sizeof(T);
Definition at line 280 of file FN_cpp_type.hh.
Referenced by blender::bke::WriteAttribute::apply_span_if_necessary(), GeometryComponent::attribute_get_constant_for_read_converted(), compute_geometry(), blender::bke::ReadAttribute::initialize_span(), blender::bke::ConstantReadAttribute::initialize_span(), blender::bke::WriteAttribute::initialize_span(), blender::fn::GVArray::materialize_to_uninitialized(), blender::fn::GSpan::operator[](), blender::fn::GMutableSpan::operator[](), OutputAttributePtr::OutputAttributePtr(), blender::fn::mf_network_optimization::prepare_params_for_constant_folding(), and blender::fn::tests::TEST().
Definition at line 258 of file FN_cpp_type.hh.
Two types only compare equal when their pointer is equal. No two instances of CPPType for the same C++ type should be created.
Definition at line 253 of file FN_cpp_type.hh.