Convert QList alias definitions to 'using'

Modern syntax for type aliases looks much nicer and is easier to read.
Additionally, QDoc is able to generate better documentation for 'using'
based aliases. Also, aliases are simplified for QDoc

Task-number: QTBUG-86553
Change-Id: I44932fbd94f32c1463eafedd1b48c1e840b697e3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
bb10
Andrei Golubev 2020-10-13 10:14:13 +02:00
parent bf73495a66
commit 301ed73487
2 changed files with 37 additions and 35 deletions

View File

@ -84,9 +84,9 @@ class QList
: public QListSpecialMethods<T>
#endif
{
typedef QTypedArrayData<T> Data;
typedef QArrayDataOps<T> DataOps;
typedef QArrayDataPointer<T> DataPointer;
using Data = QTypedArrayData<T>;
using DataOps = QArrayDataOps<T>;
using DataPointer = QArrayDataPointer<T>;
class DisableRValueRefs {};
DataPointer d;
@ -95,22 +95,32 @@ class QList
template <typename V, typename U> friend qsizetype QtPrivate::lastIndexOf(const QList<V> &list, const U &u, qsizetype from) noexcept;
public:
typedef T Type;
typedef T value_type;
typedef value_type *pointer;
typedef const value_type *const_pointer;
typedef value_type &reference;
typedef const value_type &const_reference;
typedef qsizetype size_type;
typedef qptrdiff difference_type;
typedef typename Data::iterator iterator;
typedef typename Data::const_iterator const_iterator;
typedef iterator Iterator;
typedef const_iterator ConstIterator;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
typedef typename DataPointer::parameter_type parameter_type;
using Type = T;
using value_type = T;
using pointer = T *;
using const_pointer = const T *;
using reference = T &;
using const_reference = const T &;
using size_type = qsizetype;
using difference_type = qptrdiff;
#ifndef Q_QDOC
using iterator = typename Data::iterator;
using const_iterator = typename Data::const_iterator;
#else // simplified aliases for QDoc
using iterator = T *;
using const_iterator = const T *;
#endif
using Iterator = iterator;
using ConstIterator = const_iterator;
using reverse_iterator = std::reverse_iterator<iterator>;
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
#ifndef Q_QDOC
using parameter_type = typename DataPointer::parameter_type;
using rvalue_ref = typename std::conditional<DataPointer::pass_parameter_by_value, DisableRValueRefs, T &&>::type;
#else // simplified aliases for QDoc
using parameter_type = const T &;
using rvalue_ref = T &&;
#endif
private:
void resize_internal(qsizetype i, Qt::Initialization);

View File

@ -1392,8 +1392,7 @@
iterator for QList and QStack.
QList provides both \l{STL-style iterators} and \l{Java-style
iterators}. The STL-style non-const iterator is simply a typedef
for "T *" (pointer to T).
iterators}.
//! [iterator-invalidation-class-desc]
\warning Iterators on implicitly shared containers do not work
@ -1415,8 +1414,7 @@
iterator for QList and QStack.
QList provides both \l{STL-style iterators} and \l{Java-style
iterators}. The STL-style const iterator is simply a typedef for
"const T *" (pointer to const T).
iterators}.
\include qlist.qdoc iterator-invalidation-class-desc
@ -1429,8 +1427,6 @@
The QList::reverse_iterator typedef provides an STL-style non-const
reverse iterator for QList.
It is simply a typedef for \c{std::reverse_iterator<T*>}.
\include qlist.qdoc iterator-invalidation-class-desc
\sa QList::rbegin(), QList::rend(), QList::const_reverse_iterator, QList::iterator
@ -1442,8 +1438,6 @@
The QList::const_reverse_iterator typedef provides an STL-style const
reverse iterator for QList.
It is simply a typedef for \c{std::reverse_iterator<const T*>}.
\include qlist.qdoc iterator-invalidation-class-desc
\sa QList::rbegin(), QList::rend(), QList::reverse_iterator, QList::const_iterator
@ -1461,47 +1455,45 @@
/*! \typedef QList::const_pointer
Typedef for const T *. Provided for STL compatibility.
Provided for STL compatibility.
*/
/*! \typedef QList::const_reference
Typedef for const T &. Provided for STL compatibility.
Provided for STL compatibility.
*/
/*! \typedef QList::difference_type
Typedef for ptrdiff_t. Provided for STL compatibility.
Provided for STL compatibility.
*/
/*! \typedef QList::pointer
Typedef for T *. Provided for STL compatibility.
Provided for STL compatibility.
*/
/*! \typedef QList::reference
Typedef for T &. Provided for STL compatibility.
Provided for STL compatibility.
*/
/*! \typedef QList::size_type
Typedef for int. Provided for STL compatibility.
Provided for STL compatibility.
*/
/*! \typedef QList::value_type
Typedef for T. Provided for STL compatibility.
Provided for STL compatibility.
*/
/*! \typedef QList::parameter_type
Trait-dependent typedef for either const T & or T.
*/
/*! \typedef QList::rvalue_ref
Trait-dependent typedef for T &&.
*/
/*! \fn template <typename T> QList<T> QList<T>::toList() const