From c8aadc79fceac70ec18a3971d61c52930ef5f589 Mon Sep 17 00:00:00 2001 From: Samuel Gaist Date: Sat, 19 Oct 2019 08:53:45 +0200 Subject: QSet: Document to/from QVector transformation techniques Change-Id: I2a2ff6332bd6e8ed3d4ba7b4765da0a94a06f133 Fixes: QTBUG-71067 Reviewed-by: Paul Wicking Reviewed-by: Mitch Curtis --- src/corelib/doc/snippets/code/doc_src_containers.cpp | 8 ++++++++ src/corelib/doc/src/containers.qdoc | 6 ++++++ .../doc/src/includes/containers-range-constructor.qdocinc | 2 ++ src/corelib/tools/qlist.cpp | 12 ++++++++++++ src/corelib/tools/qset.qdoc | 6 ++++++ src/corelib/tools/qvector.qdoc | 8 ++++++++ 6 files changed, 42 insertions(+) create mode 100644 src/corelib/doc/src/includes/containers-range-constructor.qdocinc diff --git a/src/corelib/doc/snippets/code/doc_src_containers.cpp b/src/corelib/doc/snippets/code/doc_src_containers.cpp index 443f6b688c..84935580c9 100644 --- a/src/corelib/doc/snippets/code/doc_src_containers.cpp +++ b/src/corelib/doc/snippets/code/doc_src_containers.cpp @@ -312,3 +312,11 @@ int j = *i; // Undefined behavior! but with QVector this is likely to crash. */ //! [24] + +//! [25] +QVector vector{1, 2, 3, 4, 4, 5}; +QSet set(vector.begin(), vector.end()); +/* + Will generate a QSet containing 1, 2, 4, 5. +*/ +//! [25] diff --git a/src/corelib/doc/src/containers.qdoc b/src/corelib/doc/src/containers.qdoc index 919533f651..d0bb251e81 100644 --- a/src/corelib/doc/src/containers.qdoc +++ b/src/corelib/doc/src/containers.qdoc @@ -66,6 +66,12 @@ Qt also offers a \l{foreach} keyword that make it very easy to iterate over all the items stored in a container. + \note Since Qt 5.14, range constructors are available for most of the + container classes. QMultiMap is a notable exception. Their use is + encouraged in place of the various from/to methods. For example: + + \snippet code/doc_src_containers.cpp 25 + \section1 The Container Classes Qt provides the following sequential containers: QList, diff --git a/src/corelib/doc/src/includes/containers-range-constructor.qdocinc b/src/corelib/doc/src/includes/containers-range-constructor.qdocinc new file mode 100644 index 0000000000..afb7e46b86 --- /dev/null +++ b/src/corelib/doc/src/includes/containers-range-constructor.qdocinc @@ -0,0 +1,2 @@ + \note Since Qt 5.14, range constructors are available for Qt's generic + \l{container classes} and should be used in place of this method. diff --git a/src/corelib/tools/qlist.cpp b/src/corelib/tools/qlist.cpp index dfebd57e34..66770f6866 100644 --- a/src/corelib/tools/qlist.cpp +++ b/src/corelib/tools/qlist.cpp @@ -2014,6 +2014,8 @@ void **QListData::erase(void **xi) \snippet code/src_corelib_tools_qlistdata.cpp 21 + \include containers-range-constructor.qdocinc + \sa fromSet(), toVector(), QVector::toList() */ @@ -2025,6 +2027,8 @@ void **QListData::erase(void **xi) \snippet code/src_corelib_tools_qlistdata.cpp 22 + \include containers-range-constructor.qdocinc + \sa toSet(), fromVector(), QVector::fromList() */ @@ -2037,6 +2041,8 @@ void **QListData::erase(void **xi) \snippet code/src_corelib_tools_qlistdata.cpp 23 + \include containers-range-constructor.qdocinc + \sa fromVector(), toSet(), QSet::toList() */ @@ -2050,6 +2056,8 @@ void **QListData::erase(void **xi) \snippet code/src_corelib_tools_qlistdata.cpp 24 + \include containers-range-constructor.qdocinc + \sa toVector(), fromSet(), QSet::fromList() */ @@ -2062,6 +2070,8 @@ void **QListData::erase(void **xi) \snippet code/src_corelib_tools_qlistdata.cpp 25 + \include containers-range-constructor.qdocinc + \sa toStdList(), QVector::fromStdVector() */ @@ -2072,6 +2082,8 @@ void **QListData::erase(void **xi) \snippet code/src_corelib_tools_qlistdata.cpp 26 + \include containers-range-constructor.qdocinc + \sa fromStdList(), QVector::toStdVector() */ diff --git a/src/corelib/tools/qset.qdoc b/src/corelib/tools/qset.qdoc index 084523ed4b..78854be0de 100644 --- a/src/corelib/tools/qset.qdoc +++ b/src/corelib/tools/qset.qdoc @@ -1001,6 +1001,8 @@ \snippet code/doc_src_qset.cpp 13 + \include containers-range-constructor.qdocinc + \sa fromList(), QList::fromSet() */ @@ -1011,6 +1013,8 @@ This is the same as toList(). + \include containers-range-constructor.qdocinc + \sa fromList(), QList::fromSet() */ @@ -1026,6 +1030,8 @@ \snippet code/doc_src_qset.cpp 14 + \include containers-range-constructor.qdocinc + \sa toList(), QList::toSet() */ diff --git a/src/corelib/tools/qvector.qdoc b/src/corelib/tools/qvector.qdoc index 8765b7fbd6..116d962411 100644 --- a/src/corelib/tools/qvector.qdoc +++ b/src/corelib/tools/qvector.qdoc @@ -1359,6 +1359,8 @@ \snippet code/src_corelib_tools_qvector.cpp 14 + \include containers-range-constructor.qdocinc + \sa fromList(), QList::fromVector() */ @@ -1370,6 +1372,8 @@ \snippet code/src_corelib_tools_qvector.cpp 15 + \include containers-range-constructor.qdocinc + \sa toList(), QList::toVector() */ @@ -1382,6 +1386,8 @@ \snippet code/src_corelib_tools_qvector.cpp 16 + \include containers-range-constructor.qdocinc + \sa toStdVector(), QList::fromStdList() */ @@ -1392,6 +1398,8 @@ \snippet code/src_corelib_tools_qvector.cpp 17 + \include containers-range-constructor.qdocinc + \sa fromStdVector(), QList::toStdList() */ -- cgit v1.2.3