QMetaContainer Class
La classe QMetaContainer fournit des fonctionnalités communes pour les conteneurs séquentiels et associatifs. Plus d'informations...
| En-tête : | #include <QMetaContainer> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Depuis : | Qt 6.0 |
| Hérité par : |
Cette classe est comparable à l'égalité.
Fonctions publiques
| void | advanceConstIterator(void *iterator, qsizetype step) const |
| void | advanceIterator(void *iterator, qsizetype step) const |
| void * | begin(void *container) const |
| bool | canClear() const |
| void | clear(void *container) const |
| bool | compareConstIterator(const void *i, const void *j) const |
| bool | compareIterator(const void *i, const void *j) const |
| void * | constBegin(const void *container) const |
| void * | constEnd(const void *container) const |
| void | copyConstIterator(void *target, const void *source) const |
| void | copyIterator(void *target, const void *source) const |
| void | destroyConstIterator(const void *iterator) const |
| void | destroyIterator(const void *iterator) const |
| qsizetype | diffConstIterator(const void *i, const void *j) const |
| qsizetype | diffIterator(const void *i, const void *j) const |
| void * | end(void *container) const |
| bool | hasBidirectionalIterator() const |
| bool | hasConstIterator() const |
| bool | hasForwardIterator() const |
| bool | hasInputIterator() const |
| bool | hasIterator() const |
| bool | hasRandomAccessIterator() const |
| bool | hasSize() const |
| qsizetype | size(const void *container) const |
Description détaillée
QMetaContainer fait partie du système de méta-type de Qt qui permet un accès aux types de type conteneur au moment de l'exécution.
Il sert de base commune pour accéder aux propriétés des conteneurs de manière générique, telles que la taille, l'itération et les opérations d'effacement, sans connaître le type réel du conteneur.
Les classes dérivées, telles que QMetaSequence, fournissent des interfaces spécialisées pour les conteneurs séquentiels.
Documentation des fonctions membres
void QMetaContainer::advanceConstIterator(void *iterator, qsizetype step) const
Avance le const iterator de step pas. Si step est négatif, iterator est déplacé vers l'arrière, vers le début du conteneur. Le comportement n'est pas spécifié pour les valeurs négatives de step si hasBidirectionalIterator() renvoie un message faux.
Voir aussi constBegin() et constEnd().
void QMetaContainer::advanceIterator(void *iterator, qsizetype step) const
Avance le non-const iterator de step pas. Si step est négatif, iterator est déplacé vers l'arrière, vers le début du conteneur. Le comportement n'est pas spécifié pour les valeurs négatives de step si hasBidirectionalIterator() renvoie false.
void *QMetaContainer::begin(void *container) const
Crée et renvoie un itérateur non-const pointant vers le début de container. L'itérateur est alloué sur le tas à l'aide de new. Il doit être détruit à l'aide de destroyIterator pour récupérer la mémoire.
Retourne nullptr si le conteneur ne propose pas d'itérateur non-const.
Voir aussi end(), constBegin(), constEnd() et destroyIterator().
bool QMetaContainer::canClear() const
Renvoie true si le conteneur peut être vidé, false sinon.
Voir aussi clear().
void QMetaContainer::clear(void *container) const
Efface le site container s'il peut être effacé.
Voir aussi canClear().
bool QMetaContainer::compareConstIterator(const void *i, const void *j) const
Renvoie true si les itérateurs constants i et j pointent vers la même valeur dans le conteneur sur lequel ils itèrent, sinon renvoie false.
Voir aussi constBegin() et constEnd().
bool QMetaContainer::compareIterator(const void *i, const void *j) const
Renvoie true si les itérateurs non-const i et j pointent vers la même valeur dans le conteneur sur lequel ils itèrent, sinon renvoie false.
void *QMetaContainer::constBegin(const void *container) const
Crée et renvoie un itérateur constant pointant vers le début de container. L'itérateur est alloué sur le tas à l'aide de new. Il doit éventuellement être détruit à l'aide de destroyConstIterator pour récupérer la mémoire.
Retourne nullptr si le conteneur ne propose pas d'itérateur constant.
Voir aussi constEnd(), begin(), end() et destroyConstIterator().
void *QMetaContainer::constEnd(const void *container) const
Crée et renvoie un itérateur constant pointant vers la fin de container. L'itérateur est alloué sur le tas à l'aide de new. Il doit éventuellement être détruit à l'aide de destroyConstIterator pour récupérer la mémoire.
Retourne nullptr si le conteneur ne propose pas d'itérateur constant.
Voir aussi constBegin(), begin(), end() et destroyConstIterator().
void QMetaContainer::copyConstIterator(void *target, const void *source) const
Copie l'itérateur constant source dans l'itérateur constant target. Ensuite, compareConstIterator(target, source) renvoie true.
Voir aussi constBegin() et constEnd().
void QMetaContainer::copyIterator(void *target, const void *source) const
Copie l'itérateur non-const source dans l'itérateur non-const target. Ensuite, compareIterator(target, source) renvoie true.
void QMetaContainer::destroyConstIterator(const void *iterator) const
Détruit une const iterator précédemment créée à l'aide de constBegin() ou constEnd().
Voir aussi constBegin(), constEnd(), et destroyIterator().
void QMetaContainer::destroyIterator(const void *iterator) const
Détruit un non-const iterator précédemment créé à l'aide de begin() ou end().
Voir aussi begin(), end() et destroyConstIterator().
qsizetype QMetaContainer::diffConstIterator(const void *i, const void *j) const
Renvoie la distance entre les itérateurs constants i et j, l'équivalent de i - j . Si j est plus proche de la fin du conteneur que i, la valeur renvoyée est négative. Le comportement n'est pas spécifié dans ce cas si hasBidirectionalIterator() renvoie false.
Voir également constBegin() et constEnd().
qsizetype QMetaContainer::diffIterator(const void *i, const void *j) const
Renvoie la distance entre les itérateurs non-const i et j, l'équivalent de i - j . Si j est plus proche de la fin du conteneur que i, la valeur renvoyée est négative. Le comportement n'est pas spécifié dans ce cas si hasBidirectionalIterator() renvoie false.
Voir également begin() et end().
void *QMetaContainer::end(void *container) const
Crée et renvoie un itérateur non-const qui pointe vers la fin de container. L'itérateur est alloué sur le tas à l'aide de new. Il doit être détruit à l'aide de destroyIterator pour récupérer la mémoire.
Retourne nullptr si le conteneur ne propose pas d'itérateur non-const.
Voir aussi hasIterator(), begin(), constBegin(), constEnd() et destroyIterator().
bool QMetaContainer::hasBidirectionalIterator() const
Renvoie true si le conteneur sous-jacent fournit un itérateur bidirectionnel ou un itérateur à accès aléatoire tel que défini par std::bidirectional_iterator_tag et std::random_access_iterator_tag, respectivement. Sinon, il renvoie false.
QMetaContainer suppose que les itérateurs const et non-const pour le même conteneur ont les mêmes traits d'itérateur.
bool QMetaContainer::hasConstIterator() const
Renvoie true si le conteneur sous-jacent propose un itérateur constant, false dans le cas contraire.
Voir aussi constBegin(), constEnd(), destroyConstIterator(), compareConstIterator(), diffConstIterator(), advanceConstIterator() et copyConstIterator().
bool QMetaContainer::hasForwardIterator() const
Renvoie true si le conteneur sous-jacent fournit au moins un itérateur forward tel que défini par std::forward_iterator_tag, sinon renvoie false. Les itérateurs bidirectionnels et les itérateurs à accès aléatoire sont des spécialisations des itérateurs forward. Cette méthode renvoie également true si le conteneur fournit l'un de ces itérateurs.
QMetaContainer suppose que les itérateurs const et non-const pour le même conteneur ont les mêmes traits d'itérateur.
bool QMetaContainer::hasInputIterator() const
Renvoie true si le conteneur sous-jacent fournit au moins un itérateur d'entrée tel que défini par std::input_iterator_tag, sinon renvoie false. Les itérateurs forward, bi-directionnels et à accès aléatoire sont des spécialisations des itérateurs d'entrée. Cette méthode renvoie également true si le conteneur fournit l'un de ces itérateurs.
QMetaContainer suppose que les itérateurs const et non-const pour le même conteneur ont les mêmes traits d'itérateur.
bool QMetaContainer::hasIterator() const
Renvoie true si le conteneur sous-jacent propose un itérateur non-const, false sinon.
Voir aussi begin(), end(), destroyIterator(), compareIterator(), diffIterator(), advanceIterator() et copyIterator().
bool QMetaContainer::hasRandomAccessIterator() const
Retourne true si le conteneur sous-jacent fournit un itérateur à accès aléatoire tel que défini par std::random_access_iterator_tag, sinon retourne false.
QMetaContainer suppose que les itérateurs const et non-const pour le même conteneur ont les mêmes traits d'itérateur.
bool QMetaContainer::hasSize() const
Renvoie true si le conteneur peut être interrogé sur sa taille, false sinon.
Voir aussi size().
qsizetype QMetaContainer::size(const void *container) const
Renvoie le nombre de valeurs dans le site container s'il est possible d'en connaître la taille. Sinon, il renvoie -1.
Voir aussi hasSize().
© 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.