Add QT_NO_QPAIR

...and mark QtCore as free of QPair.

Task-number: QTBUG-115841
Change-Id: Ic6009d3cabbf72b3b3fe966e47d48a80a328b499
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
(cherry picked from commit 31f437e658c25523c284a404ac7be153e6e347c9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Marc Mutz 2023-12-12 10:42:58 +01:00 committed by Qt Cherry-pick Bot
parent d2dc1a1828
commit 3727e97f32
3 changed files with 7 additions and 0 deletions

View File

@ -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

View File

@ -22,8 +22,10 @@ template <typename Key, typename T> class QHash;
template <typename Key, typename T> class QMap;
template <typename Key, typename T> class QMultiHash;
template <typename Key, typename T> class QMultiMap;
#ifndef QT_NO_QPAIR
template <typename T1, typename T2>
using QPair = std::pair<T1, T2>;
#endif
template <typename T> class QQueue;
template <typename T> class QSet;
template <typename T, std::size_t E = std::size_t(-1) /* = std::dynamic_extent*/> class QSpan;

View File

@ -13,6 +13,8 @@ QT_BEGIN_NAMESPACE
#pragma qt_class(QPair)
#endif
#ifndef QT_NO_QPAIR
template <typename T1, typename T2>
constexpr decltype(auto) qMakePair(T1 &&value1, T2 &&value2)
noexcept(noexcept(std::make_pair(std::forward<T1>(value1), std::forward<T2>(value2))))
@ -20,6 +22,8 @@ constexpr decltype(auto) qMakePair(T1 &&value1, T2 &&value2)
return std::make_pair(std::forward<T1>(value1), std::forward<T2>(value2));
}
#endif // QT_NO_QPAIR
QT_END_NAMESPACE
#endif // QPAIR_H