From 3727e97f32ec1f39e4ef6c0af19d675ea04ef03a Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 12 Dec 2023 10:42:58 +0100 Subject: [PATCH] Add QT_NO_QPAIR ...and mark QtCore as free of QPair. Task-number: QTBUG-115841 Change-Id: Ic6009d3cabbf72b3b3fe966e47d48a80a328b499 Reviewed-by: Ahmad Samir (cherry picked from commit 31f437e658c25523c284a404ac7be153e6e347c9) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/CMakeLists.txt | 1 + src/corelib/tools/qcontainerfwd.h | 2 ++ src/corelib/tools/qpair.h | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index 01c700a782e..4c88ba497fa 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -333,6 +333,7 @@ qt_internal_add_module(Core DEFINES QT_NO_CONTEXTLESS_CONNECT QT_NO_FOREACH + QT_NO_QPAIR QT_NO_USING_NAMESPACE QT_TYPESAFE_FLAGS INCLUDE_DIRECTORIES diff --git a/src/corelib/tools/qcontainerfwd.h b/src/corelib/tools/qcontainerfwd.h index a44ddc9e8ac..60cf04e3c6e 100644 --- a/src/corelib/tools/qcontainerfwd.h +++ b/src/corelib/tools/qcontainerfwd.h @@ -22,8 +22,10 @@ template class QHash; template class QMap; template class QMultiHash; template class QMultiMap; +#ifndef QT_NO_QPAIR template using QPair = std::pair; +#endif template class QQueue; template class QSet; template class QSpan; diff --git a/src/corelib/tools/qpair.h b/src/corelib/tools/qpair.h index 009191c4670..84f99075e18 100644 --- a/src/corelib/tools/qpair.h +++ b/src/corelib/tools/qpair.h @@ -13,6 +13,8 @@ QT_BEGIN_NAMESPACE #pragma qt_class(QPair) #endif +#ifndef QT_NO_QPAIR + template constexpr decltype(auto) qMakePair(T1 &&value1, T2 &&value2) noexcept(noexcept(std::make_pair(std::forward(value1), std::forward(value2)))) @@ -20,6 +22,8 @@ constexpr decltype(auto) qMakePair(T1 &&value1, T2 &&value2) return std::make_pair(std::forward(value1), std::forward(value2)); } +#endif // QT_NO_QPAIR + QT_END_NAMESPACE #endif // QPAIR_H