OpenSiv3D  v0.6.5
C++20 framework for creative coding
Memory.hpp File Reference
#include <memory>
#include "Common.hpp"
#include "detail/Memory.ipp"

Classes

struct  s3d::AlignedDeleter< Type >
 アライメントを考慮したデリータ More...
 
struct  s3d::IsOverAligned< Type >
 明示的なアライメントの指定が必要な型であるかを判定します。 More...
 

Namespaces

 s3d
 
 s3d::Platform
 

Functions

template<size_t Alignment>
void * s3d::Platform::AlignedMalloc (size_t size) noexcept
 アライメントを指定してメモリを確保します。 More...
 
void s3d::Platform::AlignedFree (void *const p) noexcept
 アライメントを指定して確保したメモリを解放します。 More...
 
template<class Type , size_t Alignment = alignof(Type)>
Type * s3d::AlignedMalloc (size_t n=1)
 アライメントを考慮して、指定した型のためのメモリ領域を確保します。 More...
 
void s3d::AlignedFree (void *const p)
 AlignedMalloc() で確保したメモリ領域を解放します。| Deallocates the space previously allocated by AlignedMalloc() More...
 
template<class Type , class ... Args, std::enable_if_t< std::is_constructible_v< Type, Args... >> * = nullptr>
Type * s3d::AlignedNew (Args &&... args)
 アライメントを考慮して、指定した型のためのメモリ領域を確保し、オブジェクトを構築します。 More...
 
template<class Type >
void s3d::AlignedDelete (Type *const p)
 AlignedNew() で確保したオブジェクトを破棄し、メモリ領域を解放します。 More...
 
bool s3d::IsAligned (const void *p, size_t alignment) noexcept
 ポインタが指定したサイズにアライメントされているかを返します。 More...
 

Variables

constexpr size_t s3d::Platform::PointerSize = sizeof(void*)
 ポインタのサイズ | The size of a pointer More...
 
constexpr size_t s3d::Platform::MinAlignment = __STDCPP_DEFAULT_NEW_ALIGNMENT__
 最小のメモリアラインメント | The minimum alignment of the memory More...
 
template<class Type >
constexpr bool s3d::IsOverAligned_v = IsOverAligned<Type>::value
 明示的なアライメントの指定が必要な型であるかを示します。 More...