Jelajahi Sumber

Assert replacement

Kajetan Johannes Hammerle 1 Minggu lalu
induk
melakukan
6e1d00e1a9
6 mengubah file dengan 30 tambahan dan 8 penghapusan
  1. 1 0
      CMakeLists.txt
  2. 1 2
      modules/ArrayList.cppm
  3. 25 0
      modules/Assert.cppm
  4. 1 2
      modules/List.cppm
  5. 1 2
      modules/Queue.cppm
  6. 1 2
      src/BitArray.cpp

+ 1 - 0
CMakeLists.txt

@@ -10,6 +10,7 @@ set(PRIVATE_MODULES
 set(PUBLIC_MODULES
     "modules/AlignedData.cppm"
     "modules/Array.cppm"
+    "modules/Assert.cppm"
     "modules/ArrayList.cppm"
     "modules/BitArray.cppm"
     "modules/Box.cppm"

+ 1 - 2
modules/ArrayList.cppm

@@ -1,7 +1,5 @@
 module;
 
-#include <cassert>
-
 export module Core.ArrayList;
 
 export import Core.New;
@@ -9,6 +7,7 @@ export import Core.New;
 import Core.AlignedData;
 import Core.Meta;
 import Core.Types;
+import Core.Assert;
 
 export namespace Core {
     template<typename T, size_t N>

+ 25 - 0
modules/Assert.cppm

@@ -0,0 +1,25 @@
+module;
+
+export module Core.Assert;
+
+import Core.Std;
+import Core.Utility;
+import Core.Logger;
+
+export namespace Core {
+#ifdef NDEBUG
+    void inline assert(bool) {
+    }
+#else
+    void inline assert(
+        bool b,
+        const std::source_location& l = std::source_location::current()) {
+        if(!b) {
+            Core::logError(
+                FormatLocation("Assert in function #", l),
+                getShortFileName(l.file_name()), l.line(), l.function_name());
+            exitWithHandler(1, l);
+        }
+    }
+#endif
+}

+ 1 - 2
modules/List.cppm

@@ -1,7 +1,5 @@
 module;
 
-#include <cassert>
-
 export module Core.List;
 
 export import Core.Utility;
@@ -11,6 +9,7 @@ import Core.AlignedData;
 import Core.Math;
 import Core.Meta;
 import Core.ToString;
+import Core.Assert;
 
 export using ::operator new;
 

+ 1 - 2
modules/Queue.cppm

@@ -1,7 +1,5 @@
 module;
 
-#include <cassert>
-
 export module Core.Queue;
 
 export import Core.New;
@@ -10,6 +8,7 @@ import Core.AlignedData;
 import Core.ToString;
 import Core.Meta;
 import Core.Utility;
+import Core.Assert;
 
 export namespace Core {
     template<typename T, size_t N>

+ 1 - 2
src/BitArray.cpp

@@ -1,7 +1,5 @@
 module;
 
-#include <cassert>
-
 module Core.BitArray;
 
 import Core.ToString;
@@ -9,6 +7,7 @@ import Core.Math;
 import Core.Meta;
 import Core.Utility;
 import Core.Std;
+import Core.Assert;
 
 using Core::BitArray;