diff options
Diffstat (limited to 'include/new')
-rw-r--r-- | include/new | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/new b/include/new new file mode 100644 index 0000000..92dd960 --- /dev/null +++ b/include/new @@ -0,0 +1,56 @@ +// Copyright (C) 2011 The Android Open Source Project +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the project nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// new: Dynamic storage management. + +#ifndef __GABIXX_NEW__ +#define __GABIXX_NEW__ + +#include <cstddef> + +namespace std +{ + struct nothrow_t {}; + extern const nothrow_t nothrow; + typedef void (*new_handler)(); +} + +// FIXME: Need to handle exceptions. +void* operator new(std::size_t size) throw(/*std::bad_alloc*/); +void* operator new(std::size_t size, const std::nothrow_t&) throw(); +void operator delete(void* ptr) throw(); +void operator delete(void*, const std::nothrow_t&) throw(); +void* operator new[](std::size_t size) throw(/*std::bad_alloc*/); +void* operator new[](std::size_t size, const std::nothrow_t&) throw(); +void operator delete[](void* ptr) throw(); +void operator delete[](void* const, std::nothrow_t&) throw(); +void* operator new(std::size_t size, void* ptr) throw(); +void* operator new[](std::size_t size, void* ptr) throw(); +void operator delete(void* ptr, void*) throw(); +void operator delete[](void* ptr, void*) throw(); + +#endif // __GABIXX_NEW__ |