summaryrefslogtreecommitdiffhomepage
path: root/dev/LibC++/base_alloc.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-05-02 19:38:33 +0200
committerGitHub <noreply@github.com>2025-05-02 19:38:33 +0200
commit87979899ce833ca477bb563b84e3698224119dab (patch)
treedf67a0724de4c76ce594222747220c233c3bc7f5 /dev/LibC++/base_alloc.h
parent3afc481dc64a07fe7fcaff9ce7a12a492c3ec8e7 (diff)
parentfb12b9730d78052f5cafbd84fbc9a830a22cec17 (diff)
Merge pull request #4 from nekernel-org/dev
0.0.1
Diffstat (limited to 'dev/LibC++/base_alloc.h')
-rw-r--r--dev/LibC++/base_alloc.h74
1 files changed, 34 insertions, 40 deletions
diff --git a/dev/LibC++/base_alloc.h b/dev/LibC++/base_alloc.h
index b12fd0a..af5693b 100644
--- a/dev/LibC++/base_alloc.h
+++ b/dev/LibC++/base_alloc.h
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright (C) 2024-2025 Amlal El Mahrouss, all rights reserved.
+ Copyright (C) 2024-2025 Amlal El Mahrouss, all rights reserved.
------------------------------------------- */
@@ -8,42 +8,36 @@
#include <LibC++/defines.h>
-namespace std::base_alloc
-{
- /// @brief allocate a new class.
- /// @tparam KindClass the class type to allocate.
- template <typename KindClass, typename... Args>
- inline KindClass* allocate(Args&&... args)
- {
- return new KindClass(forward(args)...);
- }
-
- /// @brief allocate a new class.
- /// @note aborts on error.
- /// @tparam KindClass the class type to allocate.
- template <typename KindClass, typename... Args>
- inline KindClass* allocate_nothrow(Args&&... args) noexcept
- {
- return allocate(forward(args)...);
- }
-
- /// @brief free a class.
- /// @tparam KindClass the class type to allocate.
- template <typename KindClass>
- inline void release(KindClass ptr)
- {
- if (!ptr)
- return;
-
- delete ptr;
- }
-
- /// @brief destroy and free a class.
- /// @note aborts on error.
- /// @tparam KindClass the class type to allocate.
- template <typename KindClass>
- inline void release_nothrow(KindClass ptr) noexcept
- {
- release(ptr);
- }
-} // namespace std::base_alloc
+namespace std::base_alloc {
+/// @brief allocate a new class.
+/// @tparam KindClass the class type to allocate.
+template <typename KindClass, typename... Args>
+inline KindClass* allocate(Args&&... args) {
+ return new KindClass(forward(args)...);
+}
+
+/// @brief allocate a new class.
+/// @note aborts on error.
+/// @tparam KindClass the class type to allocate.
+template <typename KindClass, typename... Args>
+inline KindClass* allocate_nothrow(Args&&... args) noexcept {
+ return allocate(forward(args)...);
+}
+
+/// @brief free a class.
+/// @tparam KindClass the class type to allocate.
+template <typename KindClass>
+inline void release(KindClass ptr) {
+ if (!ptr) return;
+
+ delete ptr;
+}
+
+/// @brief destroy and free a class.
+/// @note aborts on error.
+/// @tparam KindClass the class type to allocate.
+template <typename KindClass>
+inline void release_nothrow(KindClass ptr) noexcept {
+ release(ptr);
+}
+} // namespace std::base_alloc