diff options
Diffstat (limited to 'src/corelib/global/q20iterator.h')
-rw-r--r-- | src/corelib/global/q20iterator.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/corelib/global/q20iterator.h b/src/corelib/global/q20iterator.h index a7f1cf3cfc..9ed4d69965 100644 --- a/src/corelib/global/q20iterator.h +++ b/src/corelib/global/q20iterator.h @@ -11,9 +11,9 @@ // W A R N I N G // ------------- // -// This file is not part of the Qt API. Types and functions defined -// in this file will behave exactly as their std counterparts. You -// may use these definitions in your own code, but be aware that we +// This file is not part of the Qt API. Types and functions defined in this +// file can reliably be replaced by their std counterparts, once available. +// You may use these definitions in your own code, but be aware that we // will remove them once Qt depends on the C++ version that supports // them in namespace std. There will be NO deprecation warning, the // definitions will JUST go away. @@ -39,6 +39,16 @@ namespace q20 { #endif } // namespace q20 +// like q20::iter_reference_t +namespace q20 { +#ifdef __cpp_lib_ranges + using std::iter_reference_t; +#else + template <typename Dereferencable> // unconstrained (constraint requires concepts) + using iter_reference_t = decltype(*std::declval<Dereferencable&>()); +#endif // __cpp_lib_ranges +} // namespace q20 + QT_END_NAMESPACE #endif /* Q20ITERATOR_H */ |