blob: c5a43de43e76feb6a1cb0e8ded9b5ff5163b8947 [file] [log] [blame]
Niko Catania69b1a8a2009-04-10 10:54:03 -07001/* -*- c++ -*- */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08002#ifndef __NEW__
3#define __NEW__
4
Niko Catania69b1a8a2009-04-10 10:54:03 -07005#include <cstddef>
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08006
David 'Digit' Turner0621a272010-06-25 16:53:37 -07007extern "C++" {
8
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08009namespace std {
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080010 struct nothrow_t {};
11 extern const nothrow_t nothrow;
12}
13
14void* operator new(std::size_t);
15void* operator new[](std::size_t);
Chih-Hung Hsiehae558d62014-08-25 12:08:19 -070016void operator delete(void*) throw();
17void operator delete[](void*) throw();
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080018void* operator new(std::size_t, const std::nothrow_t&);
19void* operator new[](std::size_t, const std::nothrow_t&);
Chih-Hung Hsiehae558d62014-08-25 12:08:19 -070020void operator delete(void*, const std::nothrow_t&) throw();
21void operator delete[](void*, const std::nothrow_t&) throw();
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080022
23inline void* operator new(std::size_t, void* p) { return p; }
24inline void* operator new[](std::size_t, void* p) { return p; }
25
26// these next two are not really required, since exceptions are off
Chih-Hung Hsiehae558d62014-08-25 12:08:19 -070027inline void operator delete(void*, void*) throw() { }
28inline void operator delete[](void*, void*) throw() { }
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029
David 'Digit' Turner0621a272010-06-25 16:53:37 -070030} // extern C++
31
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080032#endif // __NEW__