このページでは

QMetaContainer Class

QMetaContainer クラスは、順次型および連想型のコンテナに共通する機能を提供します。詳細...

ヘッダー: #include <QMetaContainer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
以下のように: Qt 6.0
継承元:

QMetaAssociation およびQMetaSequence

QMetaContainer の比較

カテゴリ比較可能な型
等価性QMetaContainer

パブリック関数

QMetaContainer()
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

詳細な説明

QMetaContainer は、実行時にコンテナのような型への型消去アクセスを可能にする、Qt のメタ型システムの一部です。

これは、実際のコンテナ型を知ることなく、サイズ、反復、クリア操作など、コンテナのプロパティに汎用的な方法でアクセスするための共通の基盤として機能します。

QMetaSequence などの派生クラスは、順次処理型コンテナに特化したインターフェースを提供します。

メンバ関数のドキュメント

[constexpr noexcept default] QMetaContainer::QMetaContainer()

QMetaContainer のインスタンスをデフォルトコンストラクタで生成します。

void QMetaContainer::advanceConstIterator(void *iterator, qsizetype step) const

定数iterator をstep ステップ分進めます。step が負の場合、iterator はコンテナの先頭に向かって後退します。hasBidirectionalIterator()がfalseを返す場合、step の値が負であるときの挙動は未定義です。

constBegin() およびconstEnd()も参照してください 。

void QMetaContainer::advanceIterator(void *iterator, qsizetype step) const

非constのiterator をstep ステップ分前進させます。step が負の場合、iterator はコンテナの先頭に向かって後退します。hasBidirectionalIterator()がfalseを返す場合、step の値が負であるときの挙動は未定義です。

begin() およびend()も参照してください 。

void *QMetaContainer::begin(void *container) const

container の先頭を指す非const イテレータを作成して返します。このイテレータは new を使用してヒープ上に割り当てられます。最終的にメモリを解放するために、destroyIterator を使用して破棄する必要があります。

コンテナが非constイテレータを提供していない場合、nullptr を返します。

end()、constBegin()、constEnd()、およびdestroyIterator()も参照してください 。

bool QMetaContainer::canClear() const

コンテナをクリアできる場合は `true ` を返し、そうでない場合は `false ` を返します。

clear()も参照してください 。

void QMetaContainer::clear(void *container) const

指定されたcontainer がクリア可能な場合、それをクリアします。

canClear()も参照してください 。

bool QMetaContainer::compareConstIterator(const void *i, const void *j) const

constイテレータ `i ` および `j ` が、それらが反復処理を行っているコンテナ内の同じ値を指している場合は `true ` を返し、そうでない場合は `false` を返します。

constBegin() およびconstEnd()も参照してください 。

bool QMetaContainer::compareIterator(const void *i, const void *j) const

非constイテレータ `i ` および `j ` が、それらが反復処理を行っているコンテナ内の同じ値を指している場合、true を返します。そうでない場合は、false を返します。

begin() およびend()も参照してください 。

void *QMetaContainer::constBegin(const void *container) const

container の先頭を指す const イテレータを作成して返します。このイテレータは new を使用してヒープ上に割り当てられます。メモリを解放するには、最終的にdestroyConstIterator を使用して破棄する必要があります。

コンテナが const イテレータを提供していない場合は、nullptr を返します。

constEnd()、begin()、end()、およびdestroyConstIterator()も参照してください 。

void *QMetaContainer::constEnd(const void *container) const

container の末尾を指すconstイテレータを作成して返します。このイテレータはnewを使用してヒープ上に割り当てられます。メモリを解放するために、最終的にはdestroyConstIterator を使用して破棄する必要があります。

コンテナが const イテレータを提供していない場合は、nullptr を返します。

constBegin()、begin()、end()、およびdestroyConstIterator()も参照してください 。

void QMetaContainer::copyConstIterator(void *target, const void *source) const

const イテレータ `source ` を、const イテレータ `target` にコピーします。その後、compareConstIterator(target, source) は `true` を返します。

constBegin() およびconstEnd()も参照してください 。

void QMetaContainer::copyIterator(void *target, const void *source) const

非constイテレータ `source ` を、非constイテレータ `target` にコピーします。その後、compareIterator(target, source) は `true` を返します。

begin() およびend()も参照してください 。

void QMetaContainer::destroyConstIterator(const void *iterator) const

constBegin() またはconstEnd() を使用して以前に作成された constiterator を破棄します。

constBegin()、constEnd()、およびdestroyIterator()も参照してください 。

void QMetaContainer::destroyIterator(const void *iterator) const

begin() またはend() を使用して以前に作成された、const ではない `iterator ` を破棄します。

begin()、end()、およびdestroyConstIterator()も参照してください 。

qsizetype QMetaContainer::diffConstIterator(const void *i, const void *j) const

定数イテレータ `i ` と `j` の間の距離を返します。これは、`i `、`- `、`j` と同等です。もし `j ` が `i` よりもコンテナの末尾に近い場合、返される値は負の数になります。この場合、hasBidirectionalIterator() が false を返すときの挙動は未定義です。

constBegin() およびconstEnd()も参照してください 。

qsizetype QMetaContainer::diffIterator(const void *i, const void *j) const

非定数イテレータ `i ` と `j` の間の距離を返します。これは、`i `、`- `、`j` と同等です。`j ` が `i` よりもコンテナの末尾に近い場合、返される値は負の数になります。この場合、hasBidirectionalIterator() が false を返すときの挙動は未定義です。

begin() およびend()も参照してください 。

void *QMetaContainer::end(void *container) const

container の末尾を指す非const イテレータを作成して返します。このイテレータは new を使用してヒープ上に割り当てられます。メモリを解放するために、最終的にはdestroyIterator を使用して破棄する必要があります。

コンテナが非constイテレータを提供していない場合は、nullptr を返します。

hasIterator()、begin()、constBegin()、constEnd()、およびdestroyIterator()も参照してください 。

bool QMetaContainer::hasBidirectionalIterator() const

基となるコンテナが、それぞれ std::bidirectional_iterator_tag および std::random_access_iterator_tag で定義される双方向イテレータまたはランダムアクセスイテレータを提供している場合は、true を返します。それ以外の場合は、false を返します。

QMetaContainer 同じコンテナに対する const および非 const のイテレータは、同じイテレータ特性を持つものと仮定する。

bool QMetaContainer::hasConstIterator() const

基となるコンテナが const イテレータを提供している場合はtrue を返し、そうでない場合はfalse を返します。

constBegin()、constEnd()、destroyConstIterator()、compareConstIterator()、diffConstIterator()、advanceConstIterator()、およびcopyConstIterator()も参照してください 。

bool QMetaContainer::hasForwardIterator() const

基となるコンテナが、std::forward_iterator_tag で定義されるフォワードイテレータを少なくとも 1 つ提供している場合は、true を返します。そうでない場合は、false を返します。双方向イテレータおよびランダムアクセスイテレータは、フォワードイテレータの特殊化です。また、コンテナがこれらのいずれかを提供している場合、このメソッドはtrue を返します。

QMetaContainer 同じコンテナに対する const イテレータと非 const イテレータは、同じイテレータ特性を持つことを前提としています。

bool QMetaContainer::hasInputIterator() const

基となるコンテナが、std::input_iterator_tag で定義された入力イテレータを少なくとも 1 つ提供している場合は、true を返し、そうでない場合はfalse を返します。順方向、双方向、およびランダムアクセスイテレータは、入力イテレータの特化形です。また、コンテナがこれらのいずれかを提供している場合、このメソッドはtrue を返します。

QMetaContainer 同じコンテナに対する const イテレータと非 const イテレータは、同じイテレータ特性を持つことを前提としています。

bool QMetaContainer::hasIterator() const

基となるコンテナが非constのイテレータを提供している場合は `true ` を返し、それ以外の場合は `false ` を返します。

begin()、end()、destroyIterator()、compareIterator()、diffIterator()、advanceIterator()、およびcopyIterator()も参照してください 。

bool QMetaContainer::hasRandomAccessIterator() const

基となるコンテナが std::random_access_iterator_tag で定義されたランダムアクセスイテレータを提供している場合は `true ` を返し、そうでない場合は `false` を返します。

QMetaContainer 同じコンテナに対する const および非 const のイテレータは、同じイテレータ特性を持つと仮定する。

bool QMetaContainer::hasSize() const

コンテナのサイズをクエリできる場合は `true ` を返し、そうでない場合は `false ` を返します。

size()も参照してください 。

qsizetype QMetaContainer::size(const void *container) const

指定されたcontainer のサイズを照会できる場合、その値の数を返します。そうでない場合は、-1 を返します。

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.