diff options
Diffstat (limited to 'doc/reference/allocator.adoc')
-rw-r--r-- | doc/reference/allocator.adoc | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/doc/reference/allocator.adoc b/doc/reference/allocator.adoc deleted file mode 100644 index ab9a4e9..0000000 --- a/doc/reference/allocator.adoc +++ /dev/null @@ -1,31 +0,0 @@ -== `sqlite/allocator.hpp` -[#allocator] - -The sqlite allocator wraps sqlite's malloc & free functions in a similar way that std::allocator wraps `new`/`delete`. - -This can be used for sqlite-related code (e.g. vtables or custom functions) that should use memory from the sqlite3 pool. - -[source,cpp,subs=+quotes] ----- -template<typename T> -struct allocator -{ - constexpr allocator() noexcept {} - constexpr allocator( const allocator& other ) noexcept {} - template< class U > - constexpr allocator( const allocator<U>& other ) noexcept {} - - constexpr static std::size_t alignment = __implementation_defined__; - - - static_assert(alignof(T) <= alignment, "T alignment can't be fulfilled by sqlite"); - - [[nodiscard]] T* allocate( std::size_t n ); // <1> - void deallocate( T* p, std::size_t); // <2> -}; ----- -<1> Invokes `sqlite3_malloc64` and throws `std::bad_alloc` if it fails. -<2> Invokes `sqlite3_free` - -NOTE: Sqlite provides extensive https://www.sqlite.org/malloc.html[customizability for its dynamic memory allocation]. - |