mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2024-11-08 08:47:17 +01:00
Implement move semantics on the Sqrat array wrapper.
This commit is contained in:
parent
f71a1aa667
commit
4eaf365bee
@ -66,6 +66,41 @@ public:
|
||||
ArrayBase(const Object& obj) : Object(obj) {
|
||||
}
|
||||
|
||||
#ifdef SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Construct the ArrayBase from an Object that already exists
|
||||
///
|
||||
/// \param obj An Object that should already represent a Squirrel array
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
ArrayBase(Object&& obj) : Object(std::move(obj)) {
|
||||
}
|
||||
|
||||
#endif // SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Copy constructor
|
||||
///
|
||||
/// \param sa ArrayBase to copy
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
ArrayBase(const ArrayBase& sa) : Object(sa) {
|
||||
}
|
||||
|
||||
#ifdef SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Move constructor
|
||||
///
|
||||
/// \param sa ArrayBase to move
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
ArrayBase(ArrayBase&& sa) : Object(std::move(sa)) {
|
||||
}
|
||||
|
||||
#endif // SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Construct the ArrayBase from a HSQOBJECT and HSQUIRRELVM that already exist
|
||||
///
|
||||
@ -76,6 +111,36 @@ public:
|
||||
ArrayBase(HSQOBJECT o, HSQUIRRELVM v = DefaultVM::Get()) : Object(o, v) {
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Assignment operator
|
||||
///
|
||||
/// \param sa ArrayBase to copy
|
||||
///
|
||||
/// \return The ArrayBase itself
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
ArrayBase& operator=(const ArrayBase& sa) {
|
||||
Object::operator = (sa);
|
||||
return *this;
|
||||
}
|
||||
|
||||
#ifdef SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Assignment operator
|
||||
///
|
||||
/// \param sa ArrayBase to move
|
||||
///
|
||||
/// \return The ArrayBase itself
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
ArrayBase& operator=(ArrayBase&& sa) {
|
||||
Object::operator = (std::move(sa));
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Binds a Table or Class to the Array (can be used to facilitate namespaces)
|
||||
///
|
||||
@ -486,6 +551,19 @@ public:
|
||||
Array(const Object& obj) : ArrayBase(obj) {
|
||||
}
|
||||
|
||||
#ifdef SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Construct the Array from an Object that already exists
|
||||
///
|
||||
/// \param obj An Object that should already represent a Squirrel array
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
Array(Object&& obj) : ArrayBase(std::move(obj)) {
|
||||
}
|
||||
|
||||
#endif // SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Construct the Array from a HSQOBJECT and HSQUIRRELVM that already exist
|
||||
///
|
||||
@ -495,6 +573,59 @@ public:
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
Array(HSQOBJECT o, HSQUIRRELVM v = DefaultVM::Get()) : ArrayBase(o, v) {
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Copy constructor
|
||||
///
|
||||
/// \param sa Array to copy
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
Array(const Array& sa) : ArrayBase(sa) {
|
||||
}
|
||||
|
||||
#ifdef SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Move constructor
|
||||
///
|
||||
/// \param sa Array to move
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
Array(Array&& sa) : ArrayBase(std::move(sa)) {
|
||||
}
|
||||
|
||||
#endif // SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Assignment operator
|
||||
///
|
||||
/// \param sa Array to copy
|
||||
///
|
||||
/// \return The Array itself
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
Array& operator=(const Array& sa) {
|
||||
ArrayBase::operator = (sa);
|
||||
return *this;
|
||||
}
|
||||
|
||||
#ifdef SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Assignment operator
|
||||
///
|
||||
/// \param sa Array to move
|
||||
///
|
||||
/// \return The Array itself
|
||||
///
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
Array& operator=(Array&& sa) {
|
||||
ArrayBase::operator = (std::move(sa));
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // SCRAT_USE_CXX11_OPTIMIZATIONS
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
Reference in New Issue
Block a user