Bladeren bron

Added BX_ENABLED macro.

Branimir Karadžić 12 jaren geleden
bovenliggende
commit
e1942bb490
1 gewijzigde bestanden met toevoegingen van 15 en 1 verwijderingen
  1. 15 1
      include/bx/bx.h

+ 15 - 1
include/bx/bx.h

@@ -16,7 +16,21 @@ namespace bx
 {
 	// http://cnicholson.net/2011/01/stupid-c-tricks-a-better-sizeof_array/
 	template<typename T, size_t N> char (&COUNTOF_REQUIRES_ARRAY_ARGUMENT(const T(&)[N]) )[N];
-#define BX_COUNTOF(x) sizeof(bx::COUNTOF_REQUIRES_ARRAY_ARGUMENT(x) )
+#define BX_COUNTOF(_x) sizeof(bx::COUNTOF_REQUIRES_ARRAY_ARGUMENT(_x) )
+
+	// Template for avoiding MSVC: C4127: conditional expression is constant
+	template<bool>
+	BX_FORCE_INLINE bool isEnabled()
+	{
+		return true;
+	}
+
+	template<>
+	BX_FORCE_INLINE bool isEnabled<false>()
+	{
+		return false;
+	}
+#define BX_ENABLED(_x) bx::isEnabled<!!(_x)>()
 
 } // namespace bx