Browse Source

refactoring

Kajetan Johannes Hammerle 3 years ago
parent
commit
ee573a1f51
1 changed files with 29 additions and 32 deletions
  1. 29 32
      utils/Types.h

+ 29 - 32
utils/Types.h

@@ -1,43 +1,40 @@
 #ifndef TYPES_H
 #define TYPES_H
 
-namespace Size {
-    namespace {
+namespace NumberSize {
+    template<bool condition, typename IfTrue, typename IfFalse>
+    struct Conditional {
+        typedef IfTrue dummy;
+    };
 
-        template<bool condition, typename IfTrue, typename IfFalse>
-        struct Conditional {
-            typedef IfTrue dummy;
-        };
+    template<typename IfTrue, typename IfFalse>
+    struct Conditional<false, IfTrue, IfFalse> {
+        typedef IfFalse dummy;
+    };
 
-        template<typename IfTrue, typename IfFalse>
-        struct Conditional<false, IfTrue, IfFalse> {
-            typedef IfFalse dummy;
-        };
+    template<int N, typename A, typename B>
+    using SizeCheck = Conditional<sizeof (A) == N, A, B>;
 
-        template<int N, typename A, typename B>
-        using SizeCheck = Conditional<sizeof (A) == N, A, B>;
+    template<int N>
+    using Signed = SizeCheck<N, long long,
+    typename SizeCheck<N, long,
+    typename SizeCheck<N, int,
+    typename SizeCheck<N, short, char>::dummy>::dummy>::dummy>;
 
-        template<int N>
-        using Signed = SizeCheck<N, long long,
-        typename SizeCheck<N, long,
-        typename SizeCheck<N, int,
-        typename SizeCheck<N, short, char>::dummy>::dummy>::dummy>;
-        
-        template<int N>
-        using Unsigned = SizeCheck<N, unsigned long long,
-        typename SizeCheck<N, unsigned long,
-        typename SizeCheck<N, unsigned int,
-        typename SizeCheck<N, unsigned short, unsigned char>::dummy>::dummy>::dummy>;
-    }
+    template<int N>
+    using Unsigned = SizeCheck<N, unsigned long long,
+    typename SizeCheck<N, unsigned long,
+    typename SizeCheck<N, unsigned int,
+    typename SizeCheck<N, unsigned short, unsigned char>::dummy>::dummy>::dummy>;
 }
 
-typedef Size::Signed<8>::dummy int64;
-typedef Size::Signed<4>::dummy int32;
-typedef Size::Signed<2>::dummy int16;
-typedef Size::Signed<1>::dummy int8;
-typedef Size::Unsigned<8>::dummy uint64;
-typedef Size::Unsigned<4>::dummy uint32;
-typedef Size::Unsigned<2>::dummy uint16;
-typedef Size::Unsigned<1>::dummy uint8;
+typedef NumberSize::Signed<8>::dummy int64;
+typedef NumberSize::Signed<4>::dummy int32;
+typedef NumberSize::Signed<2>::dummy int16;
+typedef NumberSize::Signed<1>::dummy int8;
+typedef NumberSize::Unsigned<8>::dummy uint64;
+typedef NumberSize::Unsigned<4>::dummy uint32;
+typedef NumberSize::Unsigned<2>::dummy uint16;
+typedef NumberSize::Unsigned<1>::dummy uint8;
 
 #endif