diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-05-24 08:43:13 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2022-05-26 00:11:40 +0200 |
commit | 1e39b86bdc20a6dba92af9707c7aac9000d773c6 (patch) | |
tree | c307e90bbb6bd5fa890ba4471d3cb9a1d3bcc4e5 /src | |
parent | e61b7574e0413c3ea35d292ac0015eec27270dd2 (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.h | 13 |
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 */ |