summaryrefslogtreecommitdiffstats
path: root/src/dbus/qdbusargument.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbus/qdbusargument.h')
-rw-r--r--src/dbus/qdbusargument.h42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/dbus/qdbusargument.h b/src/dbus/qdbusargument.h
index f04cbc1ed43..b79f675a9e4 100644
--- a/src/dbus/qdbusargument.h
+++ b/src/dbus/qdbusargument.h
@@ -1,5 +1,6 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
#ifndef QDBUSARGUMENT_H
#define QDBUSARGUMENT_H
@@ -119,6 +120,27 @@ protected:
QDBusArgument(QDBusArgumentPrivate *d);
friend class QDBusArgumentPrivate;
mutable QDBusArgumentPrivate *d;
+
+private:
+ template <typename... T>
+ friend QDBusArgument &operator<<(QDBusArgument &argument, const std::tuple<T...> &tuple)
+ {
+ static_assert(sizeof...(T) != 0, "D-Bus doesn't allow empty structs");
+ argument.beginStructure();
+ std::apply([&argument](const auto &...elements) { (argument << ... << elements); }, tuple);
+ argument.endStructure();
+ return argument;
+ }
+
+ template <typename... T>
+ friend const QDBusArgument &operator>>(const QDBusArgument &argument, std::tuple<T...> &tuple)
+ {
+ static_assert(sizeof...(T) != 0, "D-Bus doesn't allow empty structs");
+ argument.beginStructure();
+ std::apply([&argument](auto &...elements) { (argument >> ... >> elements); }, tuple);
+ argument.endStructure();
+ return argument;
+ }
};
Q_DECLARE_SHARED(QDBusArgument)
@@ -323,26 +345,6 @@ inline const QDBusArgument &operator>>(const QDBusArgument &arg, std::pair<T1, T
return arg;
}
-template <typename... T>
-QDBusArgument &operator<<(QDBusArgument &argument, const std::tuple<T...> &tuple)
-{
- static_assert(sizeof...(T) != 0, "D-Bus doesn't allow empty structs");
- argument.beginStructure();
- std::apply([&argument](const auto &...elements) { (argument << ... << elements); }, tuple);
- argument.endStructure();
- return argument;
-}
-
-template <typename... T>
-const QDBusArgument &operator>>(const QDBusArgument &argument, std::tuple<T...> &tuple)
-{
- static_assert(sizeof...(T) != 0, "D-Bus doesn't allow empty structs");
- argument.beginStructure();
- std::apply([&argument](auto &...elements) { (argument >> ... >> elements); }, tuple);
- argument.endStructure();
- return argument;
-}
-
QT_END_NAMESPACE
#endif // QT_NO_DBUS