reactos/include/c++/new
Hermès Bélusca-Maïto b819608ed8 Create a branch for console restructuration work.
svn path=/branches/condrv_restructure/; revision=63104
2014-05-02 14:13:40 +00:00

48 lines
1.3 KiB
Plaintext

// Standard C++ dynamic memory management header
#ifndef _NEW
#define _NEW
#include <cstddef>
#include <exception>
extern "C++" {
class bad_alloc : public exception
{
public:
bad_alloc(const char *name = "bad alloc") throw()
: exception(name) { }
virtual ~bad_alloc() throw() { }
};
namespace std
{
using ::bad_alloc;
struct nothrow_t { };
extern const nothrow_t nothrow;
} // namespace std
typedef void (*new_handler)();
new_handler set_new_handler(new_handler) throw();
void* operator new (std::size_t size, const std::nothrow_t& nothrow_constant) throw();
inline void* operator new (std::size_t size, void* ptr) throw() { return ptr; }
void* operator new[] (std::size_t size, const std::nothrow_t& nothrow_constant) throw();
inline void* operator new[] (std::size_t size, void* ptr) throw() { return ptr; }
void operator delete (void* ptr) throw ();
void operator delete (void* ptr, const std::nothrow_t& nothrow_constant) throw();
inline void operator delete (void* ptr, void* voidptr2) throw() { }
void operator delete[] (void* ptr) throw ();
void operator delete[] (void* ptr, const std::nothrow_t& nothrow_constant) throw();
inline void operator delete[] (void* ptr, void* voidptr2) throw() { }
} // extern "C++"
#endif