#ifndef _NEW
#define _NEW

namespace std {

typedef unsigned long size_t;

// These are replaceable signatures:
// - normal single new and delete (no arguments, throw @c bad_alloc on error)
// - normal array new and delete (same)
// - @c nothrow single new and delete (take a @c nothrow argument, return
//   @c NULL on error)
// - @c nothrow array new and delete (same)
//
//  Placement new and delete signatures (take a memory address argument,
//  does nothing) may not be replaced by a user's program.
//

// Default placement versions of operator new.
inline void *operator new(size_t, void *__p) throw() { return __p; }
inline void *operator new[](size_t, void *__p) throw() { return __p; }

// Default placement versions of operator delete.
inline void  operator delete  (void *, void *) throw() { }
inline void  operator delete[](void *, void *) throw() { }

} // namespace std

#endif
