このページでは

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

QMetaAssociation の比較

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

パブリック型

(since 6.11) class Iterable

パブリック関数

QMetaAssociation()
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も参照してください 。

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

[constexpr noexcept default] QMetaAssociation::QMetaAssociation()

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

bool QMetaAssociation::canContainsKey() const

コンテナに対して `containsKey()` を使用してキーを照会できる場合は `true ` を返し、そうでない場合は `false` を返します。

bool QMetaAssociation::canCreateConstIteratorAtKey() const

createConstIteratorAtKey() を使用して、コンテナ内のエントリを指す const イテレータを作成できる場合は、true を返し、そうでない場合は false を返します。

bool QMetaAssociation::canCreateIteratorAtKey() const

createIteratorAtKey() を使用して、コンテナ内のエントリを指すイテレータを作成できる場合はtrue を返し、そうでない場合は false を返します。

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

bool QMetaAssociation::canGetKeyAtConstIterator() const

keyAtConstIterator() を使用して const イテレータからキーを取得できる場合はtrue を返し、そうでない場合はfalse を返します。

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

bool QMetaAssociation::canGetKeyAtIterator() const

keyAtIterator() を使用して、非const イテレータからキーを取得できる場合はtrue を返し、そうでない場合はfalse を返します。

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

bool QMetaAssociation::canGetMappedAtConstIterator() const

mappedAtConstIterator() を使用して、const イテレータからマッピングされた値を取得できる場合はtrue を返し、そうでない場合はfalse を返します。

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

bool QMetaAssociation::canGetMappedAtIterator() const

非constイテレータからmappedAtIterator() を使用してマップされた値を取得できる場合は `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() を使用して、非const イテレータを介してマップされた値を設定できる場合は `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 のエントリを指す非constイテレータを返します。エントリが存在しない場合は、container の末尾を指す非constイテレータを作成します。非constイテレータを作成できない場合は、nullptr を返します。

この非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

非constのiterator が指すキーを取得し、可能であれば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

非constのiterator が指すマッピングされた値を取得し、可能であれば、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

可能であれば、非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.