Bläddra i källkod

Ensure no warnings
Make code more compliant between compilers / with standard

ThePhD 9 år sedan
förälder
incheckning
bf63fda308
3 ändrade filer med 10 tillägg och 15 borttagningar
  1. 2 2
      lib/luwra/functions.hpp
  2. 3 7
      lib/luwra/generic.hpp
  3. 5 6
      lib/luwra/usertypes.hpp

+ 2 - 2
lib/luwra/functions.hpp

@@ -50,7 +50,7 @@ struct NativeFunction: Reference {
 		impl->push();
 		size_t numArgs = push(impl->state, std::forward<A>(args)...);
 
-		lua_call(impl->state, numArgs, 1);
+		lua_call(impl->state, static_cast<int>(numArgs), 1);
 		R returnValue = Value<R>::read(impl->state, -1);
 
 		lua_pop(impl->state, 1);
@@ -73,7 +73,7 @@ struct NativeFunction<void>: Reference {
 		impl->push();
 		size_t numArgs = push(impl->state, std::forward<A>(args)...);
 
-		lua_call(impl->state, numArgs, 0);
+		lua_call(impl->state, static_cast<int>(numArgs), 0);
 	}
 };
 

+ 3 - 7
lib/luwra/generic.hpp

@@ -60,12 +60,8 @@ LUWRA_NS_END
 #define LUWRA_WRAP(entity) \
 	(&luwra::internal::GenericWrapper<decltype(&entity)>::template invoke<&entity>)
 
-#ifdef _MSC_VER // Because VS C++
-	#define LUWRA_MEMBER(type, name) \
-		{#name, LUWRA_WRAP(##type::##name)}
-#else
-	#define LUWRA_MEMBER(type, name) \
-		{__STRING(name), LUWRA_WRAP(type::name)}
-#endif
+// This verions is standard and works with every compiler
+#define LUWRA_MEMBER(type, name) \
+	{#name, LUWRA_WRAP(type::##name)}
 
 #endif

+ 5 - 6
lib/luwra/usertypes.hpp

@@ -119,8 +119,7 @@ namespace internal {
  */
 template <typename U>
 struct Value<U&> {
-	using X = internal::StripUserType<U>;
-	using T = typename std::conditional<std::is_function<U>::value && !std::is_pointer<U>::value, U*, U>::type;
+	using T = internal::StripUserType<U>;
 	
 	/**
 	 * Reference a user type value on the stack.
@@ -218,7 +217,7 @@ struct Value<U*> {
 	 * \returns Number of values that have been pushed
 	 */
 	static inline
-	size_t push(State* state, T* ptr) {
+	size_t push(State* state, const T* ptr) {
 		return Value<T&>::push(state, *ptr);
 	}
 };
@@ -321,8 +320,8 @@ LUWRA_NS_END
 	} \
 	LUWRA_NS_END
 
-#define LUWRA_FIELD(type, name) {__STRING(name), LUWRA_WRAP_FIELD(type::name)}
-#define LUWRA_METHOD(type, name) {__STRING(name), LUWRA_WRAP_METHOD(type::name)}
-#define LUWRA_FUNCTION(type, name) {__STRING(name), LUWRA_WRAP_FUNCTION(type::name)}
+#define LUWRA_FIELD(type, name) {#name), LUWRA_WRAP_FIELD(type::##name)}
+#define LUWRA_METHOD(type, name) {#name), LUWRA_WRAP_METHOD(type::##name)}
+#define LUWRA_FUNCTION(type, name) {#name), LUWRA_WRAP_FUNCTION(type::##name)}
 
 #endif