QMetaSequence Class
La classe QMetaSequence permet l'accès par effacement de type aux conteneurs séquentiels. Plus d'informations...
| En-tête : | #include <QMetaSequence> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Depuis : | Qt 6.0 |
| Hérite : | QMetaContainer |
Cette classe est comparable à l'égalité.
Types publics
(since 6.11) class | Iterable |
Fonctions publiques
| void | addValue(void *container, const void *value) const |
| void | addValueAtBegin(void *container, const void *value) const |
| void | addValueAtEnd(void *container, const void *value) const |
| bool | canAddValue() const |
| bool | canAddValueAtBegin() const |
| bool | canAddValueAtEnd() const |
| bool | canEraseRangeAtIterator() const |
| bool | canEraseValueAtIterator() const |
| bool | canGetValueAtConstIterator() const |
| bool | canGetValueAtIndex() const |
| bool | canGetValueAtIterator() const |
| bool | canInsertValueAtIterator() const |
| bool | canRemoveValue() const |
| bool | canRemoveValueAtBegin() const |
| bool | canRemoveValueAtEnd() const |
| bool | canSetValueAtIndex() const |
| bool | canSetValueAtIterator() const |
| void | eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const |
| void | eraseValueAtIterator(void *container, const void *iterator) const |
| void | insertValueAtIterator(void *container, const void *iterator, const void *value) const |
| bool | isSortable() const |
| void | removeValue(void *container) const |
| void | removeValueAtBegin(void *container) const |
| void | removeValueAtEnd(void *container) const |
| void | setValueAtIndex(void *container, qsizetype index, const void *value) const |
| void | setValueAtIterator(const void *iterator, const void *value) const |
| void | valueAtConstIterator(const void *iterator, void *result) const |
| void | valueAtIndex(const void *container, qsizetype index, void *result) const |
| void | valueAtIterator(const void *iterator, void *result) const |
| QMetaType | valueMetaType() const |
Membres publics statiques
(since 6.0) QMetaSequence | fromContainer() |
Non-membres apparentés
(since 6.0) bool | operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs) |
(since 6.0) bool | operator==(const QMetaSequence &lhs, const QMetaSequence &rhs) |
Description détaillée
La classe fournit un certain nombre d'opérations primitives sur les conteneurs, en utilisant void* comme opérandes. De cette façon, vous pouvez manipuler un conteneur générique récupéré à partir d'une variante sans connaître son type.
Les arguments void* des différentes méthodes sont typiquement créés en utilisant un QVariant du type de conteneur ou de valeur correspondant, et en appelant ses méthodes QVariant::data() ou QVariant::constData(). Cependant, vous pouvez également passer des pointeurs simples vers des objets du type conteneur ou valeur.
L'invalidation de l'itérateur suit les règles données par les conteneurs sous-jacents et n'est pas exprimée dans l'API. Par conséquent, pour un conteneur véritablement générique, tous les itérateurs doivent être considérés comme invalides après toute opération d'écriture.
Documentation des fonctions membres
void QMetaSequence::addValue(void *container, const void *value) const
Ajoute value à container si possible. Si canAddValue() renvoie false, value n'est pas ajouté. Sinon, si canAddValueAtEnd() renvoie true, value est ajouté à la fin de container. Sinon, si canAddValueAtBegin() renvoie true, value est ajouté au début du conteneur. Sinon, la valeur est ajoutée à un endroit non spécifié ou pas du tout. C'est le cas pour l'ajout de valeurs à un conteneur non ordonné, par exemple QSet.
Voir également canAddValue(), canAddValueAtBegin(), canAddValueAtEnd(), isSortable() et removeValue().
void QMetaSequence::addValueAtBegin(void *container, const void *value) const
Ajoute value au début de container si possible. Si canAddValueAtBegin() renvoie false, value n'est pas ajouté.
Voir aussi canAddValueAtBegin(), isSortable() et removeValueAtBegin().
void QMetaSequence::addValueAtEnd(void *container, const void *value) const
Ajoute value à la fin de container si possible. Si canAddValueAtEnd() renvoie false, value n'est pas ajouté.
Voir aussi canAddValueAtEnd(), isSortable() et removeValueAtEnd().
bool QMetaSequence::canAddValue() const
Renvoie true si des valeurs peuvent être ajoutées au conteneur, false sinon.
Voir aussi addValue() et isSortable().
bool QMetaSequence::canAddValueAtBegin() const
Renvoie true si les valeurs ajoutées à l'aide de addValue() peuvent être placées au début du conteneur, sinon renvoie false.
Voir aussi addValueAtBegin() et canAddValueAtEnd().
bool QMetaSequence::canAddValueAtEnd() const
Renvoie true si les valeurs ajoutées à l'aide de addValue() peuvent être placées à la fin du conteneur, sinon renvoie false.
Voir aussi addValueAtEnd() et canAddValueAtBegin().
bool QMetaSequence::canEraseRangeAtIterator() const
Renvoie true si un intervalle entre deux itérateurs peut être effacé du conteneur, false sinon.
bool QMetaSequence::canEraseValueAtIterator() const
Renvoie true si la valeur pointée par un itérateur non-const peut être effacée, false sinon.
Voir aussi hasIterator() et eraseValueAtIterator().
bool QMetaSequence::canGetValueAtConstIterator() const
Renvoie true si le conteneur sous-jacent peut récupérer la valeur indiquée par un itérateur constant, false dans le cas contraire.
Voir aussi hasConstIterator() et valueAtConstIterator().
bool QMetaSequence::canGetValueAtIndex() const
Renvoie true si les valeurs peuvent être extraites du conteneur par l'index, sinon false.
Voir aussi valueAtIndex().
bool QMetaSequence::canGetValueAtIterator() const
Renvoie true si le conteneur sous-jacent peut récupérer la valeur indiquée par un itérateur non-const, false dans le cas contraire.
Voir aussi hasIterator() et valueAtIterator().
bool QMetaSequence::canInsertValueAtIterator() const
Renvoie true si le conteneur sous-jacent peut insérer une nouvelle valeur, en tenant compte de l'emplacement indiqué par un itérateur non-const.
Voir aussi hasIterator() et insertValueAtIterator().
bool QMetaSequence::canRemoveValue() const
Renvoie true si les valeurs peuvent être retirées du conteneur, false sinon.
Voir aussi removeValue() et isSortable().
bool QMetaSequence::canRemoveValueAtBegin() const
Renvoie true si des valeurs peuvent être supprimées au début du conteneur à l'aide de removeValue(), sinon renvoie false.
Voir aussi removeValueAtBegin() et canRemoveValueAtEnd().
bool QMetaSequence::canRemoveValueAtEnd() const
Renvoie true si les valeurs peuvent être retirées de la fin du conteneur à l'aide de removeValue(), sinon renvoie false.
Voir aussi removeValueAtEnd() et canRemoveValueAtBegin().
bool QMetaSequence::canSetValueAtIndex() const
Renvoie true si une valeur peut être écrite dans le conteneur par l'index, sinon false.
Voir aussi setValueAtIndex().
bool QMetaSequence::canSetValueAtIterator() const
Renvoie true si le conteneur sous-jacent peut écrire sur la valeur indiquée par un itérateur non-const, false dans le cas contraire.
Voir aussi hasIterator() et setValueAtIterator().
void QMetaSequence::eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const
Efface la plage de valeurs entre les itérateurs iterator1 et iterator2 de container, si possible.
Voir aussi canEraseValueAtIterator(), begin() et end().
void QMetaSequence::eraseValueAtIterator(void *container, const void *iterator) const
Efface la valeur indiquée par le non-const iterator de container, si possible.
Voir aussi canEraseValueAtIterator(), begin() et end().
[static constexpr, since 6.0] template <typename T> QMetaSequence QMetaSequence::fromContainer()
Renvoie le site QMetaSequence correspondant au type donné en paramètre du modèle.
Cette fonction a été introduite dans Qt 6.0.
void QMetaSequence::insertValueAtIterator(void *container, const void *iterator, const void *value) const
Insère value dans container, si possible, en tenant compte du non-const iterator. Si canInsertValueAtIterator() renvoie false, value n'est pas inséré. Sinon, si isSortable() renvoie true, la valeur est insérée avant la valeur indiquée par iterator. Dans le cas contraire, la valeur value est insérée à un endroit non spécifié ou n'est pas insérée du tout. Dans ce dernier cas, l'adresse iterator est considérée comme un indice. S'il indique le bon endroit pour value, l'opération peut être plus rapide qu'un addValue() sans itérateur.
Voir aussi canInsertValueAtIterator(), isSortable(), begin() et end().
bool QMetaSequence::isSortable() const
Renvoie true si le conteneur sous-jacent est triable, sinon renvoie false. Un conteneur est considéré comme pouvant être trié si les valeurs qui y sont ajoutées sont placées à un endroit défini. L'insertion ou l'ajout dans un conteneur pouvant être trié réussit toujours. L'insertion ou l'ajout dans un conteneur non triable peut échouer, par exemple si le conteneur est un QSet qui contient déjà la valeur insérée.
Voir également addValue(), insertValueAtIterator(), canAddValueAtBegin(), canAddValueAtEnd(), canRemoveValueAtBegin() et canRemoveValueAtEnd().
void QMetaSequence::removeValue(void *container) const
Supprime une valeur de container si possible. Si canRemoveValue() renvoie false, aucune valeur n'est supprimée. Sinon, si canRemoveValueAtEnd() renvoie true, la dernière valeur de container est supprimée. Sinon, si canRemoveValueAtBegin() renvoie true, la première valeur de container est supprimée. Sinon, une valeur non spécifiée ou rien n'est supprimé.
Voir aussi canRemoveValue(), canRemoveValueAtBegin(), canRemoveValueAtEnd(), isSortable() et addValue().
void QMetaSequence::removeValueAtBegin(void *container) const
Supprime une valeur au début de container si possible. Si canRemoveValueAtBegin() renvoie false, la valeur n'est pas supprimée.
Voir aussi canRemoveValueAtBegin(), isSortable() et addValueAtBegin().
void QMetaSequence::removeValueAtEnd(void *container) const
Supprime une valeur à la fin de container si possible. Si canRemoveValueAtEnd() renvoie false, la valeur n'est pas supprimée.
Voir aussi canRemoveValueAtEnd(), isSortable() et addValueAtEnd().
void QMetaSequence::setValueAtIndex(void *container, qsizetype index, const void *value) const
Remplace la valeur de index dans container en utilisant value passé en paramètre si cela est possible.
Voir aussi valueAtIndex() et canSetValueAtIndex().
void QMetaSequence::setValueAtIterator(const void *iterator, const void *value) const
Écrit value dans la valeur indiquée par le non-const iterator, si possible.
Voir aussi valueAtIterator(), canSetValueAtIterator(), begin() et end().
void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) const
Récupère la valeur indiquée par la constante iterator et la stocke dans l'emplacement mémoire indiqué par result, si possible.
Voir aussi canGetValueAtConstIterator(), constBegin() et constEnd().
void QMetaSequence::valueAtIndex(const void *container, qsizetype index, void *result) const
Récupère la valeur de index dans container et la place dans l'emplacement mémoire indiqué par result, si cela est possible.
Voir aussi setValueAtIndex() et canGetValueAtIndex().
void QMetaSequence::valueAtIterator(const void *iterator, void *result) const
Récupère la valeur indiquée par le non-const iterator et la stocke dans l'emplacement mémoire indiqué par result, si possible.
Voir aussi setValueAtIterator(), canGetValueAtIterator(), begin() et end().
QMetaType QMetaSequence::valueMetaType() const
Renvoie le méta type des valeurs stockées dans le conteneur.
Non-membres apparentés
[noexcept, since 6.0] bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)
Renvoie true si le QMetaSequence lhs représente un type de conteneur différent du QMetaSequence rhs , sinon renvoie false.
Cette fonction a été introduite dans Qt 6.0.
[noexcept, since 6.0] bool operator==(const QMetaSequence &lhs, const QMetaSequence &rhs)
Renvoie true si le QMetaSequence lhs représente le même type de conteneur que le QMetaSequence rhs , sinon renvoie false.
Cette fonction a été introduite dans Qt 6.0.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.