diff --git a/src/corelib/kernel/qjniarray.h b/src/corelib/kernel/qjniarray.h index 96eaafca83..e5c9bc0e29 100644 --- a/src/corelib/kernel/qjniarray.h +++ b/src/corelib/kernel/qjniarray.h @@ -70,16 +70,16 @@ class QJniArrayBase : public QJniObject > : std::true_type {}; public: - QJniArrayBase(jarray array) + explicit QJniArrayBase(jarray array) : QJniObject(static_cast(array)) { static_assert(sizeof(QJniArrayBase) == sizeof(QJniObject), "QJniArrayBase must have the same size as QJniObject!"); } - QJniArrayBase(const QJniObject &object) + explicit QJniArrayBase(const QJniObject &object) : QJniObject(object) {} - QJniArrayBase(QJniObject &&object) noexcept + explicit QJniArrayBase(QJniObject &&object) noexcept : QJniObject(std::move(object)) {} @@ -157,6 +157,12 @@ public: , std::enable_if_t, bool> = true > explicit QJniArray(Container &&container); + + template , bool> = true> + QJniArray(QJniArray &&other) + : QJniArrayBase(std::forward>(other)) + { + } ~QJniArray() = default; auto arrayObject() const