summaryrefslogtreecommitdiffhomepage
path: root/include/LibC++/new.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/LibC++/new.h')
-rw-r--r--include/LibC++/new.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/include/LibC++/new.h b/include/LibC++/new.h
new file mode 100644
index 0000000..faa9da4
--- /dev/null
+++ b/include/LibC++/new.h
@@ -0,0 +1,42 @@
+/* ========================================
+
+ Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
+
+======================================== */
+
+#pragma once
+
+#include <LibC++/defines.h>
+
+namespace std {
+struct nothrow_t final {
+ explicit nothrow_t() = default;
+ ~nothrow_t() = default;
+};
+
+struct placement_t final {
+ explicit placement_t() = default;
+ ~placement_t() = default;
+
+ void* __base{};
+ int32_t __align{};
+ size_t __size{};
+};
+} // namespace std
+
+#ifndef __has_placement
+#define placement
+#endif
+
+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*, size_t) noexcept;
+
+void operator delete[](void*) noexcept;