51 lines
752 B
C++
51 lines
752 B
C++
|
|
#include <new>
|
|
|
|
#include <cstdlib>
|
|
|
|
namespace std
|
|
{
|
|
const char* bad_alloc::what() const noexcept
|
|
{
|
|
return "bad_alloc";
|
|
}
|
|
}
|
|
|
|
void* operator new(size_t count)
|
|
{
|
|
if (void* ptr = malloc(count); ptr != nullptr)
|
|
{
|
|
return ptr;
|
|
}
|
|
__ba_throw std::bad_alloc();
|
|
}
|
|
|
|
void operator delete(void* data) noexcept
|
|
{
|
|
std::free(data);
|
|
}
|
|
|
|
void* operator new[](size_t count)
|
|
{
|
|
if (void* ptr = malloc(count); ptr != nullptr)
|
|
{
|
|
return ptr;
|
|
}
|
|
__ba_throw std::bad_alloc();
|
|
}
|
|
|
|
void operator delete[](void* data) noexcept
|
|
{
|
|
std::free(data);
|
|
}
|
|
|
|
void operator delete(void* data, size_t /* size */) noexcept
|
|
{
|
|
std::free(data);
|
|
}
|
|
|
|
void operator delete[](void* data, size_t /* size */) noexcept
|
|
{
|
|
std::free(data);
|
|
}
|