Blender  V2.93
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
blender::fn::CPPType Class Reference

#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)
 

Public Member Functions

 CPPType (std::string name, int64_t size, int64_t alignment, bool is_trivially_destructible, ConstructDefaultF construct_default, ConstructDefaultNF construct_default_n, ConstructDefaultIndicesF construct_default_indices, DestructF destruct, DestructNF destruct_n, DestructIndicesF destruct_indices, CopyToInitializedF copy_to_initialized, CopyToInitializedNF copy_to_initialized_n, CopyToInitializedIndicesF copy_to_initialized_indices, CopyToUninitializedF copy_to_uninitialized, CopyToUninitializedNF copy_to_uninitialized_n, CopyToUninitializedIndicesF copy_to_uninitialized_indices, MoveToInitializedF move_to_initialized, MoveToInitializedNF move_to_initialized_n, MoveToInitializedIndicesF move_to_initialized_indices, MoveToUninitializedF move_to_uninitialized, MoveToUninitializedNF move_to_uninitialized_n, MoveToUninitializedIndicesF move_to_uninitialized_indices, RelocateToInitializedF relocate_to_initialized, RelocateToInitializedNF relocate_to_initialized_n, RelocateToInitializedIndicesF relocate_to_initialized_indices, RelocateToUninitializedF relocate_to_uninitialized, RelocateToUninitializedNF relocate_to_uninitialized_n, RelocateToUninitializedIndicesF relocate_to_uninitialized_indices, FillInitializedF fill_initialized, FillInitializedIndicesF fill_initialized_indices, FillUninitializedF fill_uninitialized, FillUninitializedIndicesF fill_uninitialized_indices, DebugPrintF debug_print, IsEqualF is_equal, HashF hash, const void *default_value)
 
StringRefNull name () const
 
int64_t size () const
 
int64_t alignment () const
 
bool is_trivially_destructible () const
 
bool pointer_has_valid_alignment (const void *ptr) const
 
bool pointer_can_point_to_instance (const void *ptr) const
 
void construct_default (void *ptr) const
 
void construct_default_n (void *ptr, int64_t n) const
 
void construct_default_indices (void *ptr, IndexMask mask) const
 
void destruct (void *ptr) const
 
void destruct_n (void *ptr, int64_t n) const
 
void destruct_indices (void *ptr, IndexMask mask) const
 
DestructF destruct_cb () const
 
void copy_to_initialized (const void *src, void *dst) const
 
void copy_to_initialized_n (const void *src, void *dst, int64_t n) const
 
void copy_to_initialized_indices (const void *src, void *dst, IndexMask mask) const
 
void copy_to_uninitialized (const void *src, void *dst) const
 
void copy_to_uninitialized_n (const void *src, void *dst, int64_t n) const
 
void copy_to_uninitialized_indices (const void *src, void *dst, IndexMask mask) const
 
void move_to_initialized (void *src, void *dst) const
 
void move_to_initialized_n (void *src, void *dst, int64_t n) const
 
void move_to_initialized_indices (void *src, void *dst, IndexMask mask) const
 
void move_to_uninitialized (void *src, void *dst) const
 
void move_to_uninitialized_n (void *src, void *dst, int64_t n) const
 
void move_to_uninitialized_indices (void *src, void *dst, IndexMask mask) const
 
void relocate_to_initialized (void *src, void *dst) const
 
void relocate_to_initialized_n (void *src, void *dst, int64_t n) const
 
void relocate_to_initialized_indices (void *src, void *dst, IndexMask mask) const
 
void relocate_to_uninitialized (void *src, void *dst) const
 
void relocate_to_uninitialized_n (void *src, void *dst, int64_t n) const
 
void relocate_to_uninitialized_indices (void *src, void *dst, IndexMask mask) const
 
void fill_initialized (const void *value, void *dst, int64_t n) const
 
void fill_initialized_indices (const void *value, void *dst, IndexMask mask) const
 
void fill_uninitialized (const void *value, void *dst, int64_t n) const
 
void fill_uninitialized_indices (const void *value, void *dst, IndexMask mask) const
 
void debug_print (const void *value, std::stringstream &ss) const
 
bool is_equal (const void *a, const void *b) const
 
uint64_t hash (const void *value) const
 
const void * default_value () const
 
uint64_t hash () const
 
template<typename T >
bool is () const
 

Static Public Member Functions

template<typename T >
static const CPPTypeget ()
 

Friends

bool operator== (const CPPType &a, const CPPType &b)
 
bool operator!= (const CPPType &a, const CPPType &b)
 

Detailed Description

Definition at line 76 of file FN_cpp_type.hh.

Member Typedef Documentation

◆ ConstructDefaultF

Definition at line 78 of file FN_cpp_type.hh.

◆ ConstructDefaultIndicesF

Definition at line 80 of file FN_cpp_type.hh.

◆ ConstructDefaultNF

Definition at line 79 of file FN_cpp_type.hh.

◆ CopyToInitializedF

using blender::fn::CPPType::CopyToInitializedF = void (*)(const void *src, void *dst)

Definition at line 86 of file FN_cpp_type.hh.

◆ CopyToInitializedIndicesF

using blender::fn::CPPType::CopyToInitializedIndicesF = void (*)(const void *src, void *dst, IndexMask mask)

Definition at line 88 of file FN_cpp_type.hh.

◆ CopyToInitializedNF

using blender::fn::CPPType::CopyToInitializedNF = void (*)(const void *src, void *dst, int64_t n)

Definition at line 87 of file FN_cpp_type.hh.

◆ CopyToUninitializedF

using blender::fn::CPPType::CopyToUninitializedF = void (*)(const void *src, void *dst)

Definition at line 90 of file FN_cpp_type.hh.

◆ CopyToUninitializedIndicesF

using blender::fn::CPPType::CopyToUninitializedIndicesF = void (*)(const void *src, void *dst, IndexMask mask)

Definition at line 92 of file FN_cpp_type.hh.

◆ CopyToUninitializedNF

using blender::fn::CPPType::CopyToUninitializedNF = void (*)(const void *src, void *dst, int64_t n)

Definition at line 91 of file FN_cpp_type.hh.

◆ DebugPrintF

using blender::fn::CPPType::DebugPrintF = void (*)(const void *value, std::stringstream &ss)

Definition at line 116 of file FN_cpp_type.hh.

◆ DestructF

using blender::fn::CPPType::DestructF = void (*)(void *ptr)

Definition at line 82 of file FN_cpp_type.hh.

◆ DestructIndicesF

Definition at line 84 of file FN_cpp_type.hh.

◆ DestructNF

using blender::fn::CPPType::DestructNF = void (*)(void *ptr, int64_t n)

Definition at line 83 of file FN_cpp_type.hh.

◆ FillInitializedF

using blender::fn::CPPType::FillInitializedF = void (*)(const void *value, void *dst, int64_t n)

Definition at line 110 of file FN_cpp_type.hh.

◆ FillInitializedIndicesF

using blender::fn::CPPType::FillInitializedIndicesF = void (*)(const void *value, void *dst, IndexMask mask)

Definition at line 111 of file FN_cpp_type.hh.

◆ FillUninitializedF

using blender::fn::CPPType::FillUninitializedF = void (*)(const void *value, void *dst, int64_t n)

Definition at line 113 of file FN_cpp_type.hh.

◆ FillUninitializedIndicesF

using blender::fn::CPPType::FillUninitializedIndicesF = void (*)(const void *value, void *dst, IndexMask mask)

Definition at line 114 of file FN_cpp_type.hh.

◆ HashF

using blender::fn::CPPType::HashF = uint64_t (*)(const void *value)

Definition at line 118 of file FN_cpp_type.hh.

◆ IsEqualF

using blender::fn::CPPType::IsEqualF = bool (*)(const void *a, const void *b)

Definition at line 117 of file FN_cpp_type.hh.

◆ MoveToInitializedF

using blender::fn::CPPType::MoveToInitializedF = void (*)(void *src, void *dst)

Definition at line 94 of file FN_cpp_type.hh.

◆ MoveToInitializedIndicesF

using blender::fn::CPPType::MoveToInitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask)

Definition at line 96 of file FN_cpp_type.hh.

◆ MoveToInitializedNF

using blender::fn::CPPType::MoveToInitializedNF = void (*)(void *src, void *dst, int64_t n)

Definition at line 95 of file FN_cpp_type.hh.

◆ MoveToUninitializedF

using blender::fn::CPPType::MoveToUninitializedF = void (*)(void *src, void *dst)

Definition at line 98 of file FN_cpp_type.hh.

◆ MoveToUninitializedIndicesF

using blender::fn::CPPType::MoveToUninitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask)

Definition at line 100 of file FN_cpp_type.hh.

◆ MoveToUninitializedNF

using blender::fn::CPPType::MoveToUninitializedNF = void (*)(void *src, void *dst, int64_t n)

Definition at line 99 of file FN_cpp_type.hh.

◆ RelocateToInitializedF

using blender::fn::CPPType::RelocateToInitializedF = void (*)(void *src, void *dst)

Definition at line 102 of file FN_cpp_type.hh.

◆ RelocateToInitializedIndicesF

using blender::fn::CPPType::RelocateToInitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask)

Definition at line 104 of file FN_cpp_type.hh.

◆ RelocateToInitializedNF

using blender::fn::CPPType::RelocateToInitializedNF = void (*)(void *src, void *dst, int64_t n)

Definition at line 103 of file FN_cpp_type.hh.

◆ RelocateToUninitializedF

using blender::fn::CPPType::RelocateToUninitializedF = void (*)(void *src, void *dst)

Definition at line 106 of file FN_cpp_type.hh.

◆ RelocateToUninitializedIndicesF

using blender::fn::CPPType::RelocateToUninitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask)

Definition at line 108 of file FN_cpp_type.hh.

◆ RelocateToUninitializedNF

using blender::fn::CPPType::RelocateToUninitializedNF = void (*)(void *src, void *dst, int64_t n)

Definition at line 107 of file FN_cpp_type.hh.

Constructor & Destructor Documentation

◆ CPPType()

blender::fn::CPPType::CPPType ( std::string  name,
int64_t  size,
int64_t  alignment,
bool  is_trivially_destructible,
ConstructDefaultF  construct_default,
ConstructDefaultNF  construct_default_n,
ConstructDefaultIndicesF  construct_default_indices,
DestructF  destruct,
DestructNF  destruct_n,
DestructIndicesF  destruct_indices,
CopyToInitializedF  copy_to_initialized,
CopyToInitializedNF  copy_to_initialized_n,
CopyToInitializedIndicesF  copy_to_initialized_indices,
CopyToUninitializedF  copy_to_uninitialized,
CopyToUninitializedNF  copy_to_uninitialized_n,
CopyToUninitializedIndicesF  copy_to_uninitialized_indices,
MoveToInitializedF  move_to_initialized,
MoveToInitializedNF  move_to_initialized_n,
MoveToInitializedIndicesF  move_to_initialized_indices,
MoveToUninitializedF  move_to_uninitialized,
MoveToUninitializedNF  move_to_uninitialized_n,
MoveToUninitializedIndicesF  move_to_uninitialized_indices,
RelocateToInitializedF  relocate_to_initialized,
RelocateToInitializedNF  relocate_to_initialized_n,
RelocateToInitializedIndicesF  relocate_to_initialized_indices,
RelocateToUninitializedF  relocate_to_uninitialized,
RelocateToUninitializedNF  relocate_to_uninitialized_n,
RelocateToUninitializedIndicesF  relocate_to_uninitialized_indices,
FillInitializedF  fill_initialized,
FillInitializedIndicesF  fill_initialized_indices,
FillUninitializedF  fill_uninitialized,
FillUninitializedIndicesF  fill_uninitialized_indices,
DebugPrintF  debug_print,
IsEqualF  is_equal,
HashF  hash,
const void *  default_value 
)
inline

Definition at line 172 of file FN_cpp_type.hh.

References BLI_assert, and is_power_of_2_i().

Member Function Documentation

◆ alignment()

int64_t blender::fn::CPPType::alignment ( ) const
inline

◆ construct_default()

void blender::fn::CPPType::construct_default ( void *  ptr) const
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().

◆ construct_default_indices()

void blender::fn::CPPType::construct_default_indices ( void *  ptr,
IndexMask  mask 
) const
inline

Definition at line 343 of file FN_cpp_type.hh.

References BLI_assert, mask(), and ptr.

Referenced by blender::fn::tests::TEST().

◆ construct_default_n()

void blender::fn::CPPType::construct_default_n ( void *  ptr,
int64_t  n 
) const
inline

◆ copy_to_initialized()

void blender::fn::CPPType::copy_to_initialized ( const void *  src,
void *  dst 
) const
inline

◆ copy_to_initialized_indices()

void blender::fn::CPPType::copy_to_initialized_indices ( const void *  src,
void *  dst,
IndexMask  mask 
) const
inline

Definition at line 408 of file FN_cpp_type.hh.

References BLI_assert, and mask().

Referenced by blender::fn::tests::TEST().

◆ copy_to_initialized_n()

void blender::fn::CPPType::copy_to_initialized_n ( const void *  src,
void *  dst,
int64_t  n 
) const
inline

◆ copy_to_uninitialized()

void blender::fn::CPPType::copy_to_uninitialized ( const void *  src,
void *  dst 
) const
inline

◆ copy_to_uninitialized_indices()

void blender::fn::CPPType::copy_to_uninitialized_indices ( const void *  src,
void *  dst,
IndexMask  mask 
) const
inline

Definition at line 443 of file FN_cpp_type.hh.

References BLI_assert, and mask().

Referenced by blender::fn::tests::TEST().

◆ copy_to_uninitialized_n()

void blender::fn::CPPType::copy_to_uninitialized_n ( const void *  src,
void *  dst,
int64_t  n 
) const
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().

◆ debug_print()

void blender::fn::CPPType::debug_print ( const void *  value,
std::stringstream &  ss 
) const
inline

Definition at line 634 of file FN_cpp_type.hh.

References BLI_assert, and pointer_can_point_to_instance().

◆ default_value()

const void* blender::fn::CPPType::default_value ( ) const
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().

◆ destruct()

void blender::fn::CPPType::destruct ( void *  ptr) const
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().

◆ destruct_cb()

DestructF blender::fn::CPPType::destruct_cb ( ) const
inline

Definition at line 379 of file FN_cpp_type.hh.

◆ destruct_indices()

void blender::fn::CPPType::destruct_indices ( void *  ptr,
IndexMask  mask 
) const
inline

Definition at line 372 of file FN_cpp_type.hh.

References BLI_assert, mask(), and ptr.

Referenced by blender::fn::tests::TEST().

◆ destruct_n()

void blender::fn::CPPType::destruct_n ( void *  ptr,
int64_t  n 
) const
inline

◆ fill_initialized()

void blender::fn::CPPType::fill_initialized ( const void *  value,
void *  dst,
int64_t  n 
) const
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().

◆ fill_initialized_indices()

void blender::fn::CPPType::fill_initialized_indices ( const void *  value,
void *  dst,
IndexMask  mask 
) const
inline

Definition at line 605 of file FN_cpp_type.hh.

References BLI_assert, and mask().

Referenced by blender::fn::tests::TEST().

◆ fill_uninitialized()

void blender::fn::CPPType::fill_uninitialized ( const void *  value,
void *  dst,
int64_t  n 
) const
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().

◆ fill_uninitialized_indices()

void blender::fn::CPPType::fill_uninitialized_indices ( const void *  value,
void *  dst,
IndexMask  mask 
) const
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().

◆ get()

template<typename T >
static const CPPType& blender::fn::CPPType::get ( )
static

◆ hash() [1/2]

uint64_t blender::fn::CPPType::hash ( ) const
inline

Definition at line 662 of file FN_cpp_type.hh.

References blender::get_default_hash().

◆ hash() [2/2]

uint64_t blender::fn::CPPType::hash ( const void *  value) const
inline

◆ is()

template<typename T >
bool blender::fn::CPPType::is ( ) const
inline

◆ is_equal()

bool blender::fn::CPPType::is_equal ( const void *  a,
const void *  b 
) const
inline

◆ is_trivially_destructible()

bool blender::fn::CPPType::is_trivially_destructible ( ) const
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().

◆ move_to_initialized()

void blender::fn::CPPType::move_to_initialized ( void *  src,
void *  dst 
) const
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().

◆ move_to_initialized_indices()

void blender::fn::CPPType::move_to_initialized_indices ( void *  src,
void *  dst,
IndexMask  mask 
) const
inline

Definition at line 478 of file FN_cpp_type.hh.

References BLI_assert, and mask().

◆ move_to_initialized_n()

void blender::fn::CPPType::move_to_initialized_n ( void *  src,
void *  dst,
int64_t  n 
) const
inline

Definition at line 469 of file FN_cpp_type.hh.

References BLI_assert, and pointer_can_point_to_instance().

Referenced by OutputAttributePtr::save().

◆ move_to_uninitialized()

void blender::fn::CPPType::move_to_uninitialized ( void *  src,
void *  dst 
) const
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().

◆ move_to_uninitialized_indices()

void blender::fn::CPPType::move_to_uninitialized_indices ( void *  src,
void *  dst,
IndexMask  mask 
) const
inline

Definition at line 513 of file FN_cpp_type.hh.

References BLI_assert, and mask().

◆ move_to_uninitialized_n()

void blender::fn::CPPType::move_to_uninitialized_n ( void *  src,
void *  dst,
int64_t  n 
) const
inline

Definition at line 504 of file FN_cpp_type.hh.

References BLI_assert, and pointer_can_point_to_instance().

◆ name()

StringRefNull blender::fn::CPPType::name ( ) const
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().

◆ pointer_can_point_to_instance()

bool blender::fn::CPPType::pointer_can_point_to_instance ( const void *  ptr) const
inline

◆ pointer_has_valid_alignment()

bool blender::fn::CPPType::pointer_has_valid_alignment ( const void *  ptr) const
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().

◆ relocate_to_initialized()

void blender::fn::CPPType::relocate_to_initialized ( void *  src,
void *  dst 
) const
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().

◆ relocate_to_initialized_indices()

void blender::fn::CPPType::relocate_to_initialized_indices ( void *  src,
void *  dst,
IndexMask  mask 
) const
inline

Definition at line 548 of file FN_cpp_type.hh.

References BLI_assert, and mask().

Referenced by blender::fn::tests::TEST().

◆ relocate_to_initialized_n()

void blender::fn::CPPType::relocate_to_initialized_n ( void *  src,
void *  dst,
int64_t  n 
) const
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().

◆ relocate_to_uninitialized()

void blender::fn::CPPType::relocate_to_uninitialized ( void *  src,
void *  dst 
) const
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().

◆ relocate_to_uninitialized_indices()

void blender::fn::CPPType::relocate_to_uninitialized_indices ( void *  src,
void *  dst,
IndexMask  mask 
) const
inline

Definition at line 583 of file FN_cpp_type.hh.

References BLI_assert, and mask().

Referenced by blender::fn::tests::TEST().

◆ relocate_to_uninitialized_n()

void blender::fn::CPPType::relocate_to_uninitialized_n ( void *  src,
void *  dst,
int64_t  n 
) const
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().

◆ size()

int64_t blender::fn::CPPType::size ( ) const
inline

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const CPPType a,
const CPPType b 
)
friend

Definition at line 258 of file FN_cpp_type.hh.

◆ operator==

bool operator== ( const CPPType a,
const CPPType b 
)
friend

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.


The documentation for this class was generated from the following file: