32#ifndef FENNEC_MEMORY_NEW_H
33#define FENNEC_MEMORY_NEW_H
43enum class align_t :
size_t;
56template<
typename TypeT>
void construct(TypeT* ptr) {
60template<
typename TypeT>
void construct(TypeT* ptr,
const TypeT& val) {
64template<
typename TypeT>
void construct(TypeT* ptr, TypeT&& val) {
65 new(ptr) TypeT(fennec::forward<TypeT>(val));
68template<
typename TypeT,
typename...ArgsT>
void construct(TypeT* ptr, ArgsT&&...args) {
69 new(ptr) TypeT(fennec::forward<ArgsT>(args)...);
72template<
typename TypeT>
void destruct(TypeT* ptr) {
88void operator delete (
void* ptr)
noexcept;
89void operator delete[](
void* ptr)
noexcept;
97void operator delete (
void* ptr, fennec::align_t)
noexcept;
98void operator delete[](
void* ptr, fennec::align_t)
noexcept;
99void operator delete (
void* ptr,
fennec::size_t, fennec::align_t)
noexcept;
100void operator delete[](
void* ptr,
fennec::size_t, fennec::align_t)
noexcept;
101void operator delete (
void* ptr, fennec::align_t,
const fennec::nothrow_t&)
noexcept;
102void operator delete[](
void* ptr, fennec::align_t,
const fennec::nothrow_t&)
noexcept;
104template<
typename TypeT>
constexpr void*
operator new (
fennec::size_t, TypeT* ptr) {
return ptr; }
105template<
typename TypeT>
constexpr void*
operator new[](
fennec::size_t, TypeT* ptr) {
return ptr; }
size_t pagesize()
Definition new.cpp:97
Type to handle explicit nothrow definitions.
Definition new.h:48
size_t size_t
Unsigned Integer Type Returned By sizeof, sizeof..., and alignof
Definition types.h:250