Pārlūkot izejas kodu

AK: Handle LogStream operator<<(size_t)

This has been an annoyingly missing feature for some time.
Andreas Kling 5 gadi atpakaļ
vecāks
revīzija
1726c17d0d
2 mainītis faili ar 22 papildinājumiem un 4 dzēšanām
  1. 7 2
      AK/LogStream.cpp
  2. 15 2
      AK/LogStream.h

+ 7 - 2
AK/LogStream.cpp

@@ -16,12 +16,17 @@ const LogStream& operator<<(const LogStream& stream, const StringView& value)
     return stream;
 }
 
-const LogStream& operator<<(const LogStream& stream, int value)
+const LogStream& operator<<(const LogStream& stream, i32 value)
 {
     return stream << String::number(value);
 }
 
-const LogStream& operator<<(const LogStream& stream, unsigned value)
+const LogStream& operator<<(const LogStream& stream, u32 value)
+{
+    return stream << String::number(value);
+}
+
+const LogStream& operator<<(const LogStream& stream, u64 value)
 {
     return stream << String::number(value);
 }

+ 15 - 2
AK/LogStream.h

@@ -1,5 +1,6 @@
 #pragma once
 
+#include <AK/Types.h>
 #include <AK/kstdio.h>
 
 #ifdef USERLAND
@@ -59,8 +60,20 @@ inline const LogStream& operator<<(const LogStream& stream, const char* value)
 
 const LogStream& operator<<(const LogStream&, const String&);
 const LogStream& operator<<(const LogStream&, const StringView&);
-const LogStream& operator<<(const LogStream&, int);
-const LogStream& operator<<(const LogStream&, unsigned);
+const LogStream& operator<<(const LogStream&, i32);
+const LogStream& operator<<(const LogStream&, u32);
+const LogStream& operator<<(const LogStream&, u64);
+
+#ifdef __serenity__
+inline const LogStream& operator<<(const LogStream& stream, size_t value)
+{
+    if constexpr (sizeof(size_t) == 4)
+        return stream << (u32)value;
+    else
+        return stream << (u64)value;
+}
+#endif
+
 const LogStream& operator<<(const LogStream&, const void*);
 
 inline const LogStream& operator<<(const LogStream& stream, char value)