Browse Source

Added C++ standard name.

Бранимир Караџић 6 years ago
parent
commit
19b54766a3
3 changed files with 18 additions and 2 deletions
  1. 2 2
      include/bx/macros.h
  2. 15 0
      include/bx/platform.h
  3. 1 0
      tests/run_test.cpp

+ 2 - 2
include/bx/macros.h

@@ -115,11 +115,11 @@
 
 /// The return value of the function is solely a function of the arguments.
 ///
-#if (BX_COMPILER_MSVC && (BX_COMPILER_MSVC <= 1900)) || (BX_COMPILER_GCC && (__cplusplus < 201402L))
+#if __cplusplus < 201402
 #	define BX_CONSTEXPR_FUNC BX_CONST_FUNC
 #else
 #	define BX_CONSTEXPR_FUNC constexpr BX_CONST_FUNC
-#endif // BX_COMPILER_MSVC && (BX_COMPILER_MSVC <= 1900)
+#endif // __cplusplus < 201402
 
 ///
 #define BX_STATIC_ASSERT(_condition, ...) static_assert(_condition, "" __VA_ARGS__)

+ 15 - 0
include/bx/platform.h

@@ -426,4 +426,19 @@
 #	define BX_ARCH_NAME "64-bit"
 #endif // BX_ARCH_
 
+#if defined(__cplusplus)
+#	if __cplusplus < 201103L
+#		error "Pre-C++11 compiler is not supported!"
+#	elif __cplusplus < 201402L
+#		define BX_CPP_NAME "C++11"
+#	elif __cplusplus < 201703L
+#		define BX_CPP_NAME "C++14"
+#	elif __cplusplus < 201704L
+#		define BX_CPP_NAME "C++17"
+#	else
+// See: https://gist.github.com/bkaradzic/2e39896bc7d8c34e042b#orthodox-c
+#		define BX_CPP_NAME "C++WayTooModern"
+#	endif // BX_CPP_NAME
+#endif // defined(__cplusplus)
+
 #endif // BX_PLATFORM_H_HEADER_GUARD

+ 1 - 0
tests/run_test.cpp

@@ -15,6 +15,7 @@ int runAllTests(int _argc, const char* _argv[])
 		", CRT: " BX_CRT_NAME
 		", Date: " __DATE__
 		", Time: " __TIME__
+		", C++: " BX_CPP_NAME
 		);
 	return Catch::Session().run(_argc, _argv);
 }