1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 00:37:15 +01:00

Update sqratTypes.h

This commit is contained in:
Sandu Liviu Catalin 2021-09-11 21:02:05 +03:00
parent e9f5111a33
commit 4c3921d88a

View File

@ -181,7 +181,7 @@ private:
template <class T2, bool b> template <class T2, bool b>
struct pushAsInt { struct pushAsInt {
void push(HSQUIRRELVM vm, const T2& /*value*/) { inline void push(HSQUIRRELVM vm, const T2& /*value*/) noexcept {
assert(false); // fails because called before a Sqrat::Class for T exists and T is not convertible to SQInteger assert(false); // fails because called before a Sqrat::Class for T exists and T is not convertible to SQInteger
sq_pushnull(vm); sq_pushnull(vm);
} }
@ -189,8 +189,8 @@ private:
template <class T2> template <class T2>
struct pushAsInt<T2, true> { struct pushAsInt<T2, true> {
void push(HSQUIRRELVM vm, const T2& value) { inline void push(HSQUIRRELVM vm, const T2& val) noexcept {
sq_pushinteger(vm, static_cast<SQInteger>(value)); sq_pushinteger(vm, static_cast<SQInteger>(val));
} }
}; };
}; };
@ -237,7 +237,7 @@ private:
template <class T2, bool b> template <class T2, bool b>
struct pushAsInt { struct pushAsInt {
void push(HSQUIRRELVM vm, const T2& /*value*/) { inline void push(HSQUIRRELVM vm, const T2& /*value*/) noexcept {
assert(false); // fails because called before a Sqrat::Class for T exists and T is not convertible to SQInteger assert(false); // fails because called before a Sqrat::Class for T exists and T is not convertible to SQInteger
sq_pushnull(vm); sq_pushnull(vm);
} }
@ -245,8 +245,8 @@ private:
template <class T2> template <class T2>
struct pushAsInt<T2, true> { struct pushAsInt<T2, true> {
void push(HSQUIRRELVM vm, const T2& value) { inline void push(HSQUIRRELVM vm, const T2& val) noexcept {
sq_pushinteger(vm, static_cast<SQInteger>(value)); sq_pushinteger(vm, static_cast<SQInteger>(val));
} }
}; };
}; };
@ -483,7 +483,7 @@ struct Var<SharedPtr<T> > {
Var(HSQUIRRELVM vm, SQInteger idx) { \ Var(HSQUIRRELVM vm, SQInteger idx) { \
value = popAsInt<type, true>(vm, idx).value; \ value = popAsInt<type, true>(vm, idx).value; \
} \ } \
static void push(HSQUIRRELVM vm, const type& value) { \ inline static void push(HSQUIRRELVM vm, const type& value) noexcept { \
sq_pushinteger(vm, static_cast<SQInteger>(value)); \ sq_pushinteger(vm, static_cast<SQInteger>(value)); \
} \ } \
};\ };\
@ -494,7 +494,7 @@ struct Var<SharedPtr<T> > {
Var(HSQUIRRELVM vm, SQInteger idx) { \ Var(HSQUIRRELVM vm, SQInteger idx) { \
value = popAsInt<type, true>(vm, idx).value; \ value = popAsInt<type, true>(vm, idx).value; \
} \ } \
static void push(HSQUIRRELVM vm, const type& value) { \ inline static void push(HSQUIRRELVM vm, const type& value) noexcept { \
sq_pushinteger(vm, static_cast<SQInteger>(value)); \ sq_pushinteger(vm, static_cast<SQInteger>(value)); \
} \ } \
}; };
@ -525,7 +525,7 @@ SCRAT_INTEGER(signed __int64)
Var(HSQUIRRELVM vm, SQInteger idx) { \ Var(HSQUIRRELVM vm, SQInteger idx) { \
value = popAsFloat<type>(vm, idx).value; \ value = popAsFloat<type>(vm, idx).value; \
} \ } \
static void push(HSQUIRRELVM vm, const type& value) { \ inline static void push(HSQUIRRELVM vm, const type& value) noexcept { \
sq_pushfloat(vm, static_cast<SQFloat>(value)); \ sq_pushfloat(vm, static_cast<SQFloat>(value)); \
} \ } \
}; \ }; \
@ -536,7 +536,7 @@ SCRAT_INTEGER(signed __int64)
Var(HSQUIRRELVM vm, SQInteger idx) { \ Var(HSQUIRRELVM vm, SQInteger idx) { \
value = popAsFloat<type>(vm, idx).value; \ value = popAsFloat<type>(vm, idx).value; \
} \ } \
static void push(HSQUIRRELVM vm, const type& value) { \ inline static void push(HSQUIRRELVM vm, const type& value) noexcept { \
sq_pushfloat(vm, static_cast<SQFloat>(value)); \ sq_pushfloat(vm, static_cast<SQFloat>(value)); \
} \ } \
}; };
@ -572,7 +572,7 @@ struct Var<bool> {
/// \param value Value to push on to the VM's stack /// \param value Value to push on to the VM's stack
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const bool& value) { inline static void push(HSQUIRRELVM vm, const bool& value) noexcept {
sq_pushbool(vm, static_cast<SQBool>(value)); sq_pushbool(vm, static_cast<SQBool>(value));
} }
}; };
@ -605,7 +605,7 @@ struct Var<const bool&> {
/// \param value Value to push on to the VM's stack /// \param value Value to push on to the VM's stack
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const bool& value) { inline static void push(HSQUIRRELVM vm, const bool& value) noexcept {
sq_pushbool(vm, static_cast<SQBool>(value)); sq_pushbool(vm, static_cast<SQBool>(value));
} }
}; };
@ -615,7 +615,7 @@ struct Var<const bool&> {
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
template<> template<>
struct Var<std::nullptr_t> { struct Var<std::nullptr_t> {
std::nullptr_t value; ///< The actual value of get operations std::nullptr_t value{}; ///< The actual value of get operations
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Attempts to get the value off the stack at idx as a nullptr_t /// Attempts to get the value off the stack at idx as a nullptr_t
@ -632,7 +632,7 @@ struct Var<std::nullptr_t> {
/// \param vm Target VM /// \param vm Target VM
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm) { inline static void push(HSQUIRRELVM vm) noexcept {
sq_pushnull(vm); sq_pushnull(vm);
} }
@ -643,7 +643,7 @@ struct Var<std::nullptr_t> {
/// \param value Value to push on to the VM's stack /// \param value Value to push on to the VM's stack
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, std::nullptr_t SQ_UNUSED_ARG(value)) { inline static void push(HSQUIRRELVM vm, std::nullptr_t SQ_UNUSED_ARG(value)) noexcept {
sq_pushnull(vm); sq_pushnull(vm);
} }
}; };
@ -655,13 +655,13 @@ template<>
struct Var<SQChar*> { struct Var<SQChar*> {
private: private:
HSQOBJECT obj; /* hold a reference to the object holding value during the Var struct lifetime*/ HSQOBJECT obj{}; /* hold a reference to the object holding value during the Var struct lifetime*/
HSQUIRRELVM v; HSQUIRRELVM v{nullptr};
public: public:
SQChar* value; ///< The actual value of get operations SQChar* value{nullptr}; ///< The actual value of get operations
SQInteger size; ///< The size of the obtained string SQInteger size{0}; ///< The size of the obtained string
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Attempts to get the value off the stack at idx as a character array /// Attempts to get the value off the stack at idx as a character array
@ -698,7 +698,7 @@ public:
/// \param len Length of the string (defaults to finding the length by searching for a terminating null-character) /// \param len Length of the string (defaults to finding the length by searching for a terminating null-character)
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const SQChar* value, SQInteger len = -1) { inline static void push(HSQUIRRELVM vm, const SQChar* value, SQInteger len = -1) noexcept {
sq_pushstring(vm, value, len); sq_pushstring(vm, value, len);
} }
}; };
@ -710,13 +710,13 @@ template<>
struct Var<const SQChar*> { struct Var<const SQChar*> {
private: private:
HSQOBJECT obj; /* hold a reference to the object holding value during the Var struct lifetime*/ HSQOBJECT obj{}; /* hold a reference to the object holding value during the Var struct lifetime*/
HSQUIRRELVM v; HSQUIRRELVM v{nullptr};
public: public:
const SQChar* value; ///< The actual value of get operations const SQChar* value{nullptr}; ///< The actual value of get operations
SQInteger size; ///< The size of the obtained string SQInteger size{0}; ///< The size of the obtained string
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Attempts to get the value off the stack at idx as a character array /// Attempts to get the value off the stack at idx as a character array
@ -753,7 +753,7 @@ public:
/// \param len Length of the string (defaults to finding the length by searching for a terminating null-character) /// \param len Length of the string (defaults to finding the length by searching for a terminating null-character)
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const SQChar* value, SQInteger len = -1) { inline static void push(HSQUIRRELVM vm, const SQChar* value, SQInteger len = -1) noexcept {
sq_pushstring(vm, value, len); sq_pushstring(vm, value, len);
} }
}; };
@ -789,8 +789,8 @@ struct Var<string> {
/// \param value Value to push on to the VM's stack /// \param value Value to push on to the VM's stack
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const string& value) { inline static void push(HSQUIRRELVM vm, const string& value) noexcept {
sq_pushstring(vm, value.c_str(), value.size()); sq_pushstring(vm, value.c_str(), static_cast< SQInteger >(value.size()));
} }
}; };
@ -825,8 +825,8 @@ struct Var<const string&> {
/// \param value Value to push on to the VM's stack /// \param value Value to push on to the VM's stack
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const string& value) { inline static void push(HSQUIRRELVM vm, const string& value) noexcept {
sq_pushstring(vm, value.c_str(), value.size()); sq_pushstring(vm, value.c_str(), static_cast< SQInteger >(value.size()));
} }
}; };
@ -863,7 +863,7 @@ struct Var<std::wstring> {
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const std::wstring& value) { static void push(HSQUIRRELVM vm, const std::wstring& value) {
std::string s(value.begin(), value.end()); std::string s(value.begin(), value.end());
sq_pushstring(vm, s.c_str(), s.size()); sq_pushstring(vm, s.c_str(), static_cast< SQInteger >(s.size()));
} }
}; };
@ -900,7 +900,7 @@ struct Var<const std::wstring&> {
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const std::wstring& value) { static void push(HSQUIRRELVM vm, const std::wstring& value) {
std::string s(value.begin(), value.end()); std::string s(value.begin(), value.end());
sq_pushstring(vm, s.c_str(), s.size()); sq_pushstring(vm, s.c_str(), static_cast< SQInteger >(s.size()));
} }
}; };
@ -1173,7 +1173,7 @@ struct Var<StackStrF> {
/// \param value Value to push on to the VM's stack /// \param value Value to push on to the VM's stack
/// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void push(HSQUIRRELVM vm, const StackStrF& value) { static void push(HSQUIRRELVM vm, const StackStrF& value) noexcept {
if (sq_isstring(value.mObj)) { if (sq_isstring(value.mObj)) {
sq_pushobject(vm, value.mObj); sq_pushobject(vm, value.mObj);
} else { } else {
@ -1284,7 +1284,7 @@ inline void PushVars(HSQUIRRELVM /*vm*/) { }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T> template<class T>
inline void PushVars(HSQUIRRELVM vm, T value) { inline void PushVars(HSQUIRRELVM vm, T value) {
PushVar(vm, value); PushVar(vm, std::forward< T >(value));
} }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -1292,15 +1292,15 @@ inline void PushVars(HSQUIRRELVM vm, T value) {
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
template<class T, class... Ts> template<class T, class... Ts>
inline void PushVars(HSQUIRRELVM vm, T value, Ts &&... tail) { inline void PushVars(HSQUIRRELVM vm, T value, Ts &&... tail) {
PushVar(vm, value); PushVar(vm, std::forward< T >(value));
PushVars(vm, std::forward<Ts>(tail)...); PushVars(vm, std::forward< Ts >(tail)...);
} }
/// @cond DEV /// @cond DEV
template<class T, bool b> template<class T, bool b>
struct PushVarR_helper { struct PushVarR_helper {
inline static void push(HSQUIRRELVM vm, T value) { inline static void push(HSQUIRRELVM vm, T value) {
PushVar<T>(vm, value); PushVar<T>(vm, std::forward< T >(value));
} }
}; };
template<class T> template<class T>