summaryrefslogtreecommitdiffhomepage
path: root/dev/LibC++/new.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-20 09:19:44 -0500
committerGitHub <noreply@github.com>2025-11-20 09:19:44 -0500
commit274936aa8c14c09239f771bce5b5cc5b6ae507a2 (patch)
tree6c16ac05bb73c7aea0bb4a69f5bc77c2f6ca2d77 /dev/LibC++/new.h
parent3cc0546417ed38c69a5ba0af1d7fd4c47af1401f (diff)
parent56db5137ddd10f476b9820944b47ab72c6f8e019 (diff)
Merge pull request #25 from nekernel-org/dev
first set of patches to stable.
Diffstat (limited to 'dev/LibC++/new.h')
-rw-r--r--dev/LibC++/new.h39
1 files changed, 27 insertions, 12 deletions
diff --git a/dev/LibC++/new.h b/dev/LibC++/new.h
index 8b09328..3ac60d7 100644
--- a/dev/LibC++/new.h
+++ b/dev/LibC++/new.h
@@ -1,4 +1,3 @@
-
/* -------------------------------------------
Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
@@ -9,21 +8,37 @@
#include <LibC++/defines.h>
-struct __placement_new_info;
+namespace std {
+struct placement_new;
+
+/// =========================================================
+/// @brief Disambugate non-throwing allocation functions.
+/// =========================================================
+struct nothrow_t {
+ explicit nothrow_t() = default;
+};
+
+/// =========================================================
+/// @brief Placement new metadata.
+/// =========================================================
+struct placement_new {
+ void* __base;
+ int __align;
+ long long __size;
+};
+
+using placement_new_t = placement_new;
+} // namespace std
void* operator new(size_t);
void* operator new[](size_t);
+void* operator new(size_t, const std::nothrow_t&) noexcept;
+void* operator new(size_t, void*) noexcept;
+void* operator new[](size_t, const std::nothrow_t&) noexcept;
+void* operator new[](size_t, void*) noexcept;
+
void operator delete(void*) noexcept;
-void operator delete(void*, unsigned long) noexcept;
+void operator delete(void*, size_t) noexcept;
void operator delete[](void*) noexcept;
-
-/// =========================================================
-/// @brief Placement new information structure
-/// =========================================================
-struct __placement_new_info {
- void* __base;
- int __align;
- long long __size;
-}; \ No newline at end of file