16 #ifndef INCLUDE_NN_NLIB_HEAP_UNITHEAP_H_ 17 #define INCLUDE_NN_NLIB_HEAP_UNITHEAP_H_ 21 #if defined(_MSC_VER) && defined(nx_heap_EXPORTS) 22 #undef NLIB_VIS_PUBLIC 23 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT 31 typedef void (*DestructorHandler)(
void* start,
void* end) NLIB_NOEXCEPT_FUNCPTR;
37 (*handler_)(start_, end_);
40 errno_t Init(
void* start,
size_t size, DestructorHandler handler,
size_t unit,
44 size_t GetUnitSize() const NLIB_NOEXCEPT {
return unit_size_; }
55 size_t baseunit_count_;
58 size_t allocated_count_;
60 uint32_t heap_option_;
63 DestructorHandler handler_;
69 #if defined(_MSC_VER) && defined(nx_heap_EXPORTS) 70 #undef NLIB_VIS_PUBLIC 71 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT 74 #endif // INCLUDE_NN_NLIB_HEAP_UNITHEAP_H_ size_t GetUnitCount() const noexcept
このヒープからアロケートできる領域の個数を返します。
固定メモリサイズの領域を確保・解放するためのヒープです。所謂プールアロケータです。 ...
size_t GetAllocatedCount() const noexcept
現在このヒープから確保されている領域の個数を返します。
size_t GetUnitSize() const noexcept
このヒープからアロケートされる領域の1つあたりのサイズを返します。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。