Blender  V2.93
Classes | Namespaces | Typedefs | Functions | Variables
BLI_memory_utils.hh File Reference
#include <memory>
#include <new>
#include <type_traits>
#include "BLI_utildefines.h"
#include "MEM_guardedalloc.h"

Go to the source code of this file.

Classes

struct  blender::DestructValueAtAddress< T >
 
class  blender::AlignedBuffer< Size, Alignment >
 
class  blender::TypedBuffer< T, Size >
 
class  blender::DynamicStackBuffer< ReservedSize, ReservedAlignment >
 
class  blender::NoInitialization
 
class  blender::NoExceptConstructor
 

Namespaces

 blender
 

Typedefs

template<typename T >
using blender::destruct_ptr = std::unique_ptr< T, DestructValueAtAddress< T > >
 

Functions

template<typename T >
void blender::destruct_n (T *ptr, int64_t n)
 
template<typename T >
void blender::default_construct_n (T *ptr, int64_t n)
 
template<typename T >
void blender::initialized_copy_n (const T *src, int64_t n, T *dst)
 
template<typename T >
void blender::uninitialized_copy_n (const T *src, int64_t n, T *dst)
 
template<typename From , typename To >
void blender::uninitialized_convert_n (const From *src, int64_t n, To *dst)
 
template<typename T >
void blender::initialized_move_n (T *src, int64_t n, T *dst)
 
template<typename T >
void blender::uninitialized_move_n (T *src, int64_t n, T *dst)
 
template<typename T >
void blender::initialized_relocate_n (T *src, int64_t n, T *dst)
 
template<typename T >
void blender::uninitialized_relocate_n (T *src, int64_t n, T *dst)
 
template<typename T >
void blender::initialized_fill_n (T *dst, int64_t n, const T &value)
 
template<typename T >
void blender::uninitialized_fill_n (T *dst, int64_t n, const T &value)
 
constexpr int64_t blender::default_inline_buffer_capacity (size_t element_size)
 
template<typename Container >
Container & blender::copy_assign_container (Container &dst, const Container &src)
 
template<typename Container >
Container & blender::move_assign_container (Container &dst, Container &&src) noexcept(std::is_nothrow_move_constructible_v< Container >)
 

Variables

template<typename From , typename To >
constexpr bool blender::is_convertible_pointer_v
 
template<typename From , typename To >
constexpr bool blender::is_span_convertible_pointer_v
 

Detailed Description

Some of the functions below have very similar alternatives in the standard library. However, it is rather annoying to use those when debugging. Therefore, some more specialized and easier to debug functions are provided here.

Definition in file BLI_memory_utils.hh.