Sur cette page

QMetaSequence Class

La classe QMetaSequence permet un accès sans spécification de type aux conteneurs séquentiels. En savoir plus...

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 de : QMetaContainer

Comparaisons QMetaSequence

CatégorieTypes comparables
égalitéQMetaSequence

Types publics

(since 6.11) class Iterable

Fonctions publiques

QMetaSequence()
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()
(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 de base sur les conteneurs, utilisant void* comme opérandes. De cette manière, vous pouvez manipuler un conteneur générique extrait d'un Variant sans connaître son type.

Les arguments de type `void*` des différentes méthodes sont généralement créés à l’aide d’une ` QVariant ` du conteneur ou du type de valeur correspondant, puis en appelant ses méthodes ` QVariant::data()` ou ` QVariant::constData()`. Cependant, vous pouvez également passer des pointeurs simples vers des objets du conteneur ou du type de valeur.

L’invalidation des itérateurs suit les règles définies par les conteneurs sous-jacents et n’est pas spécifié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

[constexpr noexcept default] QMetaSequence::QMetaSequence()

Construit par défaut une instance de ` QMetaSequence`.

void QMetaSequence::addValue(void *container, const void *value) const

Ajoute value à la container si possible. Si canAddValue() renvoie false, l’ value n’est pas ajouté. Sinon, si canAddValueAtEnd() renvoie true, l’ value est ajouté à la fin de la container. Sinon, si canAddValueAtBegin() renvoie true, l’ value est ajouté au début du conteneur. Sinon, la valeur est ajoutée à un emplacement non spécifié ou n’est pas ajoutée du tout. Ce dernier cas s’applique à l’ajout de valeurs dans 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 la fonction canAddValueAtBegin() renvoie false, l'value n'est pas ajouté.

Voir également canAddValueAtBegin(), isSortable() et removeValueAtBegin().

void QMetaSequence::addValueAtEnd(void *container, const void *value) const

Ajoute value à la fin de container si possible. Si la fonction canAddValueAtEnd() renvoie false, l'value n'est pas ajouté.

Voir également canAddValueAtEnd(), isSortable() et removeValueAtEnd().

bool QMetaSequence::canAddValue() const

Renvoie ` true ` si des valeurs peuvent être ajoutées au conteneur, ` false ` dans le cas contraire.

Voir également addValue() et isSortable().

bool QMetaSequence::canAddValueAtBegin() const

Renvoie « true » si les valeurs ajoutées à l'aide de la fonction addValue() peuvent être placées au début du conteneur ; sinon, renvoie « false ».

Voir également addValueAtBegin() et canAddValueAtEnd().

bool QMetaSequence::canAddValueAtEnd() const

Renvoie « true » si les valeurs ajoutées à l'aide de la fonction addValue() peuvent être placées à la fin du conteneur ; sinon, renvoie « false ».

Voir également addValueAtEnd() et canAddValueAtBegin().

bool QMetaSequence::canEraseRangeAtIterator() const

Renvoie ` true ` si un intervalle compris entre deux itérateurs peut être effacé du conteneur, et ` false ` dans le cas contraire.

bool QMetaSequence::canEraseValueAtIterator() const

Renvoie ` true ` si la valeur pointée par un itérateur non constant peut être effacée, et ` false ` dans le cas contraire.

Voir également hasIterator() et eraseValueAtIterator().

bool QMetaSequence::canGetValueAtConstIterator() const

Renvoie ` true ` si le conteneur sous-jacent peut récupérer la valeur pointée par un itérateur `const`, et ` false ` dans le cas contraire.

Voir également hasConstIterator() et valueAtConstIterator().

bool QMetaSequence::canGetValueAtIndex() const

Renvoie ` true ` si les valeurs peuvent être récupérées à partir du conteneur par index, sinon ` false`.

Voir également valueAtIndex().

bool QMetaSequence::canGetValueAtIterator() const

Renvoie ` true ` si le conteneur sous-jacent peut récupérer la valeur pointée par un itérateur non-const, et ` false ` dans le cas contraire.

Voir également 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 pointé par un itérateur non constant.

Voir également ` hasIterator()` et ` insertValueAtIterator()`.

bool QMetaSequence::canRemoveValue() const

Renvoie « true » si des valeurs peuvent être supprimées du conteneur, « false » dans le cas contraire.

Voir également removeValue() et isSortable().

bool QMetaSequence::canRemoveValueAtBegin() const

Renvoie ` true ` si des valeurs peuvent être supprimées du début du conteneur à l'aide de ` removeValue()`, sinon renvoie ` false`.

Voir également removeValueAtBegin() et canRemoveValueAtEnd().

bool QMetaSequence::canRemoveValueAtEnd() const

Renvoie ` true ` si des valeurs peuvent être supprimées de la fin du conteneur à l'aide de ` removeValue()` ; sinon, renvoie ` false`.

Voir également removeValueAtEnd() et canRemoveValueAtBegin().

bool QMetaSequence::canSetValueAtIndex() const

Renvoie ` true ` si une valeur peut être écrite dans le conteneur à l'index indiqué, sinon ` false`.

Voir également setValueAtIndex().

bool QMetaSequence::canSetValueAtIterator() const

Renvoie ` true ` si le conteneur sous-jacent permet d'écrire dans la valeur pointée par un itérateur non-const, et ` false ` dans le cas contraire.

Voir également hasIterator() et setValueAtIterator().

void QMetaSequence::eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const

Efface la plage de valeurs comprise entre les itérateurs iterator1 et iterator2 de l'container, si possible.

Voir également canEraseValueAtIterator(), begin() et end().

void QMetaSequence::eraseValueAtIterator(void *container, const void *iterator) const

Efface la valeur pointée par le iterator non constant à partir de l'container, si possible.

Voir également canEraseValueAtIterator(), begin() et end().

[static constexpr, since 6.0] template <typename T> QMetaSequence QMetaSequence::fromContainer()

Renvoie l'QMetaSequence e correspondant au type fourni en tant que paramètre de 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 de la variable non constante iterator. Si canInsertValueAtIterator() renvoie false, la valeur value n’est pas insérée. Sinon, si isSortable() renvoie true, la valeur est insérée avant la valeur pointée par iterator. Sinon, la valeur value est insérée à un emplacement non spécifié, voire pas du tout. Dans ce dernier cas, l’ iterator est considéré comme une indication. S’il pointe vers l’emplacement correct pour l’ value, l’opération peut s’avérer plus rapide qu’un appel à addValue() sans itérateur.

Voir également 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 triable si les valeurs qui y sont ajoutées sont placées à un emplacement défini. L'insertion ou l'ajout dans un conteneur triable aboutira 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érer.

Voir également addValue(), insertValueAtIterator(), canAddValueAtBegin(), canAddValueAtEnd(), canRemoveValueAtBegin() et canRemoveValueAtEnd().

void QMetaSequence::removeValue(void *container) const

Supprime une valeur de l'container, si possible. Si canRemoveValue() renvoie false, aucune valeur n'est supprimée. Sinon, si canRemoveValueAtEnd() renvoie true, la dernière valeur de l'container est supprimée. Sinon, si canRemoveValueAtBegin() renvoie true, la première valeur de l'container est supprimée. Sinon, une valeur non spécifiée ou rien n'est supprimé.

Voir également 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 également 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 également canRemoveValueAtEnd(), isSortable() et addValueAtEnd().

void QMetaSequence::setValueAtIndex(void *container, qsizetype index, const void *value) const

Remplace la valeur située à l'adresse index dans le fichier container à l'aide de l'value transmis en paramètre, si cela est possible.

Voir également valueAtIndex() et canSetValueAtIndex().

void QMetaSequence::setValueAtIterator(const void *iterator, const void *value) const

Écrit value dans la valeur pointée par la variable non constante iterator, si possible.

Voir également valueAtIterator(), canSetValueAtIterator(), begin() et end().

void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) const

Récupère la valeur pointée par la constante ` iterator ` et la stocke à l'emplacement mémoire pointé par ` result`, si possible.

Voir également canGetValueAtConstIterator(), constBegin() et constEnd().

void QMetaSequence::valueAtIndex(const void *container, qsizetype index, void *result) const

Récupère la valeur située à l'adresse index dans l'container et la stocke à l'emplacement mémoire pointé par result, si cela est possible.

Voir également setValueAtIndex() et canGetValueAtIndex().

void QMetaSequence::valueAtIterator(const void *iterator, void *result) const

Récupère la valeur pointée par l'iterator (non constante) et la stocke à l'emplacement mémoire pointé par result, si possible.

Voir également setValueAtIterator(), canGetValueAtIterator(), begin() et end().

QMetaType QMetaSequence::valueMetaType() const

Renvoie le méta-type des valeurs stockées dans le conteneur.

Éléments non membres associés

[noexcept, since 6.0] bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)

Renvoie « true » si l'QMetaSequence lhs représente un type de conteneur différent de celui de 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 l'QMetaSequence lhs représente le même type de conteneur que l'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.