summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-05-24 08:43:13 +0200
committerMarc Mutz <marc.mutz@qt.io>2022-05-26 00:11:40 +0200
commit1e39b86bdc20a6dba92af9707c7aac9000d773c6 (patch)
treec307e90bbb6bd5fa890ba4471d3cb9a1d3bcc4e5 /src
parente61b7574e0413c3ea35d292ac0015eec27270dd2 (diff)
Short live q20::remove_cvref{,_t}!
C++20 added this as a more light-weight alternative to std::decay. Task-number: QTBUG-103739 Change-Id: Icbb973d9500a0d1425859f8f104b7aef1ec917f1 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/global/q20functional.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/corelib/global/q20functional.h b/src/corelib/global/q20functional.h
index 13e6c9e090..9584252663 100644
--- a/src/corelib/global/q20functional.h
+++ b/src/corelib/global/q20functional.h
@@ -41,6 +41,19 @@ struct identity
#endif // __cpp_lib_ranges
} // namespace q20
+namespace q20 {
+// like std::remove_cvref(_t)
+#ifdef __cpp_lib_remove_cvref
+using std::remove_cvref;
+using std::remove_cvref_t;
+#else
+template <typename T>
+struct remove_cvref : std::remove_cv<std::remove_reference_t<T>> {};
+template <typename T>
+using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
+#endif // __cpp_lib_remove_cvref
+}
+
QT_END_NAMESPACE
#endif /* Q20FUNCTIONAL_H */