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 |
| 継承元: |
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 の値が負であるときの挙動は未定義です。
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 を返します。
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` を返します。
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 を返すときの挙動は未定義です。
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.