use noexcept if C++11 or later
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index e4f4c01..70783fe 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -112,6 +112,9 @@
 	#undef XBYAK_TLS
 	#define XBYAK_TLS thread_local
 	#define XBYAK_VARIADIC_TEMPLATE
+	#define XBYAK_NOEXCEPT noexcept
+#else
+	#define XBYAK_NOEXCEPT throw()
 #endif
 
 #if (__cplusplus >= 201402L) || (_MSC_VER >= 1910) // Visual Studio 2017 version 15.0
@@ -290,7 +293,7 @@
 		}
 	}
 	operator int() const { return err_; }
-	const char *what() const throw()
+	const char *what() const XBYAK_NOEXCEPT
 	{
 		return ConvertErrorToString(err_);
 	}
@@ -335,7 +338,7 @@
 }
 
 template<class To, class From>
-inline const To CastTo(From p) throw()
+inline const To CastTo(From p) XBYAK_NOEXCEPT
 {
 	return (const To)(size_t)(p);
 }