From dd780dbd027752e02325bd1611ded6a5beac8ba5 Mon Sep 17 00:00:00 2001 From: Sandu Liviu Catalin Date: Sat, 20 Mar 2021 11:49:13 +0200 Subject: [PATCH] Update sqratArray.h --- module/Sqrat/sqratArray.h | 49 ++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/module/Sqrat/sqratArray.h b/module/Sqrat/sqratArray.h index 82ad8c0c..6bd2224e 100644 --- a/module/Sqrat/sqratArray.h +++ b/module/Sqrat/sqratArray.h @@ -32,6 +32,7 @@ #include #include "sqratObject.h" +#include "sqratLightObj.h" #include "sqratFunction.h" #include "sqratGlobalMethods.h" @@ -67,7 +68,25 @@ public: /// \param obj An Object that should already represent a Squirrel array /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - explicit ArrayBase(Object&& obj) noexcept : Object(std::forward< Object >(obj)) { + explicit ArrayBase(Object&& obj) noexcept : Object(std::move(obj)) { + } + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /// Construct the ArrayBase from an LightObj that already exists + /// + /// \param obj An LightObj that should already represent a Squirrel array + /// + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + explicit ArrayBase(const LightObj& obj) : Object(obj) { + } + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /// Construct the ArrayBase from an LightObj that already exists + /// + /// \param obj An LightObj that should already represent a Squirrel array + /// + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + explicit ArrayBase(LightObj&& obj) noexcept : Object(std::move(obj)) { } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -84,7 +103,7 @@ public: /// \param sa ArrayBase to move /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ArrayBase(ArrayBase&& sa) noexcept : Object(std::forward< ArrayBase >(sa)) { + ArrayBase(ArrayBase&& sa) noexcept : Object(std::move(sa)) { } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -116,7 +135,7 @@ public: /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ArrayBase& operator=(ArrayBase&& sa) noexcept { - Object::operator = (std::forward< ArrayBase >(sa)); + Object::operator = (std::move(sa)); return *this; } @@ -638,7 +657,25 @@ public: /// \param obj An Object that should already represent a Squirrel array /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - Array(Object&& obj) noexcept : ArrayBase(std::forward< Object >(obj)) { + Array(Object&& obj) noexcept : ArrayBase(std::move(obj)) { + } + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /// Construct the Array from an LightObj that already exists + /// + /// \param obj An LightObj that should already represent a Squirrel array + /// + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + Array(const LightObj& obj) : ArrayBase(obj) { + } + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /// Construct the Array from an LightObj that already exists + /// + /// \param obj An LightObj that should already represent a Squirrel array + /// + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + Array(LightObj&& obj) noexcept : ArrayBase(std::move(obj)) { } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -666,7 +703,7 @@ public: /// \param sa Array to move /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - Array(Array&& sa) noexcept : ArrayBase(std::forward< Array >(sa)) { + Array(Array&& sa) noexcept : ArrayBase(std::move(sa)) { } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -691,7 +728,7 @@ public: /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Array& operator=(Array&& sa) noexcept { - ArrayBase::operator = (std::forward< Array >(sa)); + ArrayBase::operator = (std::move(sa)); return *this; }