QMetaAssociation Class
QMetaAssociationクラスは、連想コンテナへの型消去アクセスを可能にします。詳細...
| ヘッダ | #include <QMetaAssociation> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 以来: | Qt 6.0 |
| 継承: | QMetaContainer |
このクラスは等価比較可能です。
パブリック型
(since 6.11) class | Iterable |
パブリック関数
| bool | canContainsKey() const |
| bool | canCreateConstIteratorAtKey() const |
| bool | canCreateIteratorAtKey() const |
| bool | canGetKeyAtConstIterator() const |
| bool | canGetKeyAtIterator() const |
| bool | canGetMappedAtConstIterator() const |
| bool | canGetMappedAtIterator() const |
| bool | canGetMappedAtKey() const |
| bool | canInsertKey() const |
| bool | canRemoveKey() const |
| bool | canSetMappedAtIterator() const |
| bool | canSetMappedAtKey() const |
| bool | containsKey(const void *container, const void *key) const |
| void * | createConstIteratorAtKey(const void *container, const void *key) const |
| void * | createIteratorAtKey(void *container, const void *key) const |
| void | insertKey(void *container, const void *key) const |
| void | keyAtConstIterator(const void *iterator, void *key) const |
| void | keyAtIterator(const void *iterator, void *key) const |
| QMetaType | keyMetaType() const |
| void | mappedAtConstIterator(const void *iterator, void *mapped) const |
| void | mappedAtIterator(const void *iterator, void *mapped) const |
| void | mappedAtKey(const void *container, const void *key, void *mapped) const |
| QMetaType | mappedMetaType() const |
| void | removeKey(void *container, const void *key) const |
| void | setMappedAtIterator(const void *iterator, const void *mapped) const |
| void | setMappedAtKey(void *container, const void *key, const void *mapped) const |
静的パブリックメンバ
(since 6.0) QMetaAssociation | fromContainer() |
関連する非メンバー
| bool | operator!=(const QMetaAssociation &lhs, const QMetaAssociation &rhs) |
| bool | operator==(const QMetaAssociation &lhs, const QMetaAssociation &rhs) |
詳細な説明
このクラスは、オペランドとして void* を使用する、いくつかのプリミティブなコンテナ操作を提供します。これにより、その型を知らなくても、Variantから取得した汎用コンテナを操作することができます。
QMetaAssociation は、QMap やQHash のようなマップされた値を持つコンテナと、QSet のようなキーのみを保持するコンテナの両方をカバーしています。
さまざまなメソッドへの void* 引数は、通常、それぞれのコンテナまたは値型のQVariant を使用し、そのQVariant::data() またはQVariant::constData() メソッドを呼び出すことによって作成されます。しかし、コンテナ型や値型のオブジェクトへのプレーン・ポインタを渡すこともできます。
イテレータの無効化は、基礎となるコンテナによって与えられるルールに従うものであり、APIで表現されるものではありません。したがって、真に汎用的なコンテナでは、どのようなイテレータも、書き込み操作の後には無効であると考えるべきである。
QMetaContainer 、QMetaSequence 、QIterable 、QIteratorも参照のこと 。
メンバ関数ドキュメント
bool QMetaAssociation::canContainsKey() const
containsKey() を使ってコンテナのキーを照会できる場合はtrue を返し、そうでない場合はfalse を返す。
bool QMetaAssociation::canCreateConstIteratorAtKey() const
コンテナ内のエントリを指すイテレータをcreateConstIteratorAtKey() で作成できる場合はtrue を返し、そうでない場合は false を返す。
bool QMetaAssociation::canCreateIteratorAtKey() const
コンテナ内のエントリを指すイテレータをcreateIteratorAtKey() で作成できる場合はtrue を返し、そうでない場合は false を返す。
createIteratorAtKey()も参照 。
bool QMetaAssociation::canGetKeyAtConstIterator() const
keyAtConstIterator() を使用して const イテレータからキーを取得できる場合はtrue を返し、そうでない場合はfalse を返します。
keyAtConstIterator()も参照 。
bool QMetaAssociation::canGetKeyAtIterator() const
keyAtIterator() を使って非構成イテレータからキーを取得できる場合はtrue を返し、そうでない場合はfalse を返す。
keyAtIterator()も参照 。
bool QMetaAssociation::canGetMappedAtConstIterator() const
mappedAtConstIterator() を使用して const イテレータからマップされた値を取得できる場合はtrue を返し、そうでない場合はfalse を返します。
mappedAtConstIterator()も参照 。
bool QMetaAssociation::canGetMappedAtIterator() const
マップされた値がmappedAtIterator() を使用して nononst イテレータから取得できる場合はtrue を返し、そうでない場合はfalse を返す。
mappedAtIterator()も参照 。
bool QMetaAssociation::canGetMappedAtKey() const
mappedAtKey() を使ってコンテナの値を照会できる場合はtrue を返し、そうでない場合はfalse を返す。
bool QMetaAssociation::canInsertKey() const
insertKey() を使ってコンテナにキーを追加できる場合はtrue を返し、そうでない場合はfalse を返す。
insertKey()も参照 。
bool QMetaAssociation::canRemoveKey() const
removeKey() を使ってコンテナからキーを削除できる場合はtrue を返し、そうでない場合はfalse を返す。
removeKey()も参照 。
bool QMetaAssociation::canSetMappedAtIterator() const
マップされた値が、setMappedAtIterator() を使用した nononst iterator で設定できる場合はtrue を返し、そうでない場合はfalse を返す。
setMappedAtIterator()も参照のこと 。
bool QMetaAssociation::canSetMappedAtKey() const
setMappedAtKey() を使ってコンテナ内でマップされた値を変更できる場合はtrue を返し、そうでない場合はfalse を返す。
setMappedAtKey()も参照 。
bool QMetaAssociation::containsKey(const void *container, const void *key) const
container がキーの問い合わせが可能で、かつkey を含んでいればtrue を返し、そうでなければfalse を返す。
canContainsKey()も参照のこと 。
void *QMetaAssociation::createConstIteratorAtKey(const void *container, const void *key) const
可能であれば、container のkey のエントリを指す const イテレータを返す。エントリが存在しない場合、container の末尾を指す const イテレータを作成する。const イテレータを作成できない場合、nullptr を返す。
const イテレータは、destroyConstIterator() を使用して破棄しなければならない。
canCreateConstIteratorAtKey()、constBegin()、constEnd()、destroyConstIterator()も参照 。
void *QMetaAssociation::createIteratorAtKey(void *container, const void *key) const
可能であれば、container のkey のエントリを指す nononst イテレータを返す。エントリが存在しない場合、container の末尾を指す nononst イテレータを作成する。 nononst イテレータを作成できない場合、nullptr を返す。
non-constイテレータは、destroyIterator()を使用して破棄しなければならない。
canCreateIteratorAtKey()、begin()、end()、destroyIterator()も参照のこと 。
[static constexpr, since 6.0] template <typename T> QMetaAssociation QMetaAssociation::fromContainer()
テンプレート・パラメータとして与えられた型に対応するQMetaAssociation を返します。
この関数は Qt 6.0 で導入されました。
void QMetaAssociation::insertKey(void *container, const void *key) const
可能であれば、key をcontainer に挿入する。コンテナにマップされた値がある場合、デフォルトで作成されたマップされた値がkey に関連付けられます。
canInsertKey()も参照 。
void QMetaAssociation::keyAtConstIterator(const void *iterator, void *key) const
constiterator が指すキーを取得し、可能であればkey が指すメモリ位置に格納する。
canGetKeyAtConstIterator()、constBegin()、constEnd()、createConstIteratorAtKey()も参照のこと 。
void QMetaAssociation::keyAtIterator(const void *iterator, void *key) const
nononstiterator が指すキーを取得し、可能であればkey が指すメモリ位置に格納する。
canGetKeyAtIterator()、begin()、end()、createIteratorAtKey()も参照のこと 。
QMetaType QMetaAssociation::keyMetaType() const
コンテナ内のキーのメタ型を返します。
void QMetaAssociation::mappedAtConstIterator(const void *iterator, void *mapped) const
constiterator が指すマップされた値を取得し、可能であればmapped が指すメモリ位置に格納する。
canGetMappedAtConstIterator()、constBegin()、constEnd()、createConstIteratorAtKey()も参照のこと 。
void QMetaAssociation::mappedAtIterator(const void *iterator, void *mapped) const
nononstiterator が指すマップされた値を取得し、可能であればmapped が指すメモリ位置に格納する。
setMappedAtIterator()、canGetMappedAtIterator()、begin()、end()、createIteratorAtKey()も参照のこと 。
void QMetaAssociation::mappedAtKey(const void *container, const void *key, void *mapped) const
container のkey に関連付けられたマップされた値を取得し、mapped が指すメモリ位置に配置する。
setMappedAtKey() およびcanGetMappedAtKey()も参照のこと 。
QMetaType QMetaAssociation::mappedMetaType() const
コンテナ内のマップされた値のメタ型を返します。
void QMetaAssociation::removeKey(void *container, const void *key) const
container からkey とそれに関連するマップされた値を可能であれば削除する。
canRemoveKey()も参照 。
void QMetaAssociation::setMappedAtIterator(const void *iterator, const void *mapped) const
可能であれば、iterator が指すコンテナの場所に、mapped の値を書き込む。
mappedAtIterator()、canSetMappedAtIterator()、begin()、end()、createIteratorAtKey()も参照のこと 。
void QMetaAssociation::setMappedAtKey(void *container, const void *key, const void *mapped) const
引数として渡されたmapped の値を使用して、container のkey に関連付けられた値を上書きする。
mappedAtKey() およびcanSetMappedAtKey()も参照のこと 。
関連する非会員
[noexcept] bool operator!=(const QMetaAssociation &lhs, const QMetaAssociation &rhs)
QMetaAssociation lhs がQMetaAssociation rhs と異なるコンテナタイプを表している場合はtrue を返し、そうでない場合はfalse を返す。
[noexcept] bool operator==(const QMetaAssociation &lhs, const QMetaAssociation &rhs)
QMetaAssociation lhs がQMetaAssociation rhs と同じコンテナタイプを表している場合はtrue を返し、そうでない場合はfalse を返す。
© 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.