[docs] Adjust qExchange() docs for the present, where C++17 is required [2/2]: 6.3+

In C++17, std::exchange() is unconditionally available, so focus
attention on the missing constexpr and noexcept.

Manual conflict resolutions:
- docs moved from qglobal.cpp to qttypetraits.qdoc in 6.5

Change-Id: I5eb466b784bd741a7313a1554d8b7b67711d2cbc
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 9c1a00271bccd8cefa1a7e568e21debc429ad73a)
This commit is contained in:
Marc Mutz 2022-10-07 08:52:26 +02:00
parent abb629c023
commit 821b993857

View File

@ -3811,9 +3811,9 @@ bool qunsetenv(const char *varName)
Replaces the value of \a obj with \a newValue and returns the old value of \a obj.
This is Qt's implementation of std::exchange(). It differs from std::exchange()
only in that it is \c constexpr already before C++20.
only in that it is \c constexpr already before C++20 and noexcept already before C++23.
We strongly advise to use std::exchange() when you don't need the C++20 variant.
We strongly advise to use std::exchange() when you don't need the C++20 or C++23 variants.
Here is how to use qExchange() to implement move constructors:
\code