QMetaSequence Class
QMetaSequence クラスを使用すると、型消去された状態でシーケンシャルコンテナにアクセスできます。詳細...
| ヘッダー: | #include <QMetaSequence> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 以下のように: | Qt 6.0 |
| 継承元: | QMetaContainer |
QMetaSequence の比較
| カテゴリ | 比較可能な型 |
|---|---|
| 等価性 | QMetaSequence |
パブリック型
(since 6.11) class | Iterable |
パブリック関数
| QMetaSequence() | |
| void | addValue(void *container, const void *value) const |
| void | addValueAtBegin(void *container, const void *value) const |
| void | addValueAtEnd(void *container, const void *value) const |
| bool | canAddValue() const |
| bool | canAddValueAtBegin() const |
| bool | canAddValueAtEnd() const |
| bool | canEraseRangeAtIterator() const |
| bool | canEraseValueAtIterator() const |
| bool | canGetValueAtConstIterator() const |
| bool | canGetValueAtIndex() const |
| bool | canGetValueAtIterator() const |
| bool | canInsertValueAtIterator() const |
| bool | canRemoveValue() const |
| bool | canRemoveValueAtBegin() const |
| bool | canRemoveValueAtEnd() const |
| bool | canSetValueAtIndex() const |
| bool | canSetValueAtIterator() const |
| void | eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const |
| void | eraseValueAtIterator(void *container, const void *iterator) const |
| void | insertValueAtIterator(void *container, const void *iterator, const void *value) const |
| bool | isSortable() const |
| void | removeValue(void *container) const |
| void | removeValueAtBegin(void *container) const |
| void | removeValueAtEnd(void *container) const |
| void | setValueAtIndex(void *container, qsizetype index, const void *value) const |
| void | setValueAtIterator(const void *iterator, const void *value) const |
| void | valueAtConstIterator(const void *iterator, void *result) const |
| void | valueAtIndex(const void *container, qsizetype index, void *result) const |
| void | valueAtIterator(const void *iterator, void *result) const |
| QMetaType | valueMetaType() const |
静的パブリックメンバー
(since 6.0) QMetaSequence | fromContainer() |
関連する非メンバー
(since 6.0) bool | operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs) |
(since 6.0) bool | operator==(const QMetaSequence &lhs, const QMetaSequence &rhs) |
詳細な説明
このクラスは、オペランドとして void* を使用する、いくつかの基本的なコンテナ操作を提供します。これにより、Variant から取得したジェネリック・コンテナの型を知らなくても、そのコンテナを操作することができます。
各種メソッドへの `void*` 引数は、通常、それぞれのコンテナまたは値型の `QVariant ` を使用し、その `QVariant::data()` または `QVariant::constData()` メソッドを呼び出すことで作成されます。ただし、コンテナまたは値型のオブジェクトへの単純なポインタを渡すことも可能です。
イテレータの無効化は、基となるコンテナが定める規則に従い、API では明示されていません。したがって、真に汎用的なコンテナの場合、書き込み操作の後は、すべてのイテレータが無効であると見なすべきです。
メンバ関数のドキュメント
[constexpr noexcept default] QMetaSequence::QMetaSequence()
QMetaSequence のインスタンスをデフォルトコンストラクタで生成します。
void QMetaSequence::addValue(void *container, const void *value) const
可能であれば、value をcontainer に追加します。canAddValue()がfalse を返す場合、value は追加されません。それ以外の場合、canAddValueAtEnd()がtrue を返す場合、value はcontainer の末尾に追加されます。それ以外の場合、canAddValueAtBegin()がtrue を返す場合、value はコンテナの先頭に追加されます。それ以外の場合、値は未指定の位置に追加されるか、まったく追加されません。 後者のケースは、順序のないコンテナ(例:QSet )に値を追加する場合に該当します。
canAddValue()、canAddValueAtBegin()、canAddValueAtEnd()、isSortable()、およびremoveValue()も参照してください 。
void QMetaSequence::addValueAtBegin(void *container, const void *value) const
可能であれば、container の先頭にvalue を追加します。canAddValueAtBegin() がfalse を返す場合、value は追加されません。
canAddValueAtBegin()、isSortable()、およびremoveValueAtBegin()も参照してください 。
void QMetaSequence::addValueAtEnd(void *container, const void *value) const
可能であれば、container の末尾にvalue を追加します。canAddValueAtEnd() がfalse を返す場合、value は追加されません。
canAddValueAtEnd()、isSortable()、およびremoveValueAtEnd()も参照してください 。
bool QMetaSequence::canAddValue() const
コンテナに値を追加できる場合は `true ` を返し、そうでない場合は `false ` を返します。
addValue() およびisSortable()も参照してください 。
bool QMetaSequence::canAddValueAtBegin() const
addValue() を使用して追加された値がコンテナの先頭に配置できる場合はtrue を返し、そうでない場合はfalse を返します。
addValueAtBegin() およびcanAddValueAtEnd()も参照してください 。
bool QMetaSequence::canAddValueAtEnd() const
addValue() を使用して追加された値がコンテナの末尾に配置できる場合はtrue を返し、そうでない場合はfalse を返します。
addValueAtEnd() およびcanAddValueAtBegin()も参照してください 。
bool QMetaSequence::canEraseRangeAtIterator() const
2つのイテレータで囲まれた範囲をコンテナから消去できる場合は `true ` を返し、そうでない場合は `false ` を返します。
bool QMetaSequence::canEraseValueAtIterator() const
非constイテレータが指す値が消去可能であれば `true ` を返し、そうでない場合は `false ` を返します。
hasIterator() およびeraseValueAtIterator()も参照してください 。
bool QMetaSequence::canGetValueAtConstIterator() const
基となるコンテナが、const イテレータが指す値を取得できる場合は `true ` を返し、そうでない場合は `false ` を返します。
hasConstIterator() およびvalueAtConstIterator()も参照してください 。
bool QMetaSequence::canGetValueAtIndex() const
コンテナからインデックスを指定して値を取得できる場合は `true ` を返し、そうでない場合は `false` を返します。
valueAtIndex()も参照してください 。
bool QMetaSequence::canGetValueAtIterator() const
基となるコンテナが、非constイテレータが指す値を取得できる場合は `true ` を返し、そうでない場合は `false ` を返します。
hasIterator() およびvalueAtIterator()も参照してください 。
bool QMetaSequence::canInsertValueAtIterator() const
非constイテレータが指す位置を考慮した上で、基となるコンテナに新しい値を挿入できる場合、true を返します。
hasIterator() およびinsertValueAtIterator()も参照してください 。
bool QMetaSequence::canRemoveValue() const
コンテナから値を削除できる場合は `true ` を返し、そうでない場合は `false ` を返します。
removeValue() およびisSortable()も参照してください 。
bool QMetaSequence::canRemoveValueAtBegin() const
removeValue() を使用してコンテナの先頭から値を削除できる場合はtrue を返し、そうでない場合はfalse を返します。
removeValueAtBegin() およびcanRemoveValueAtEnd()も参照してください 。
bool QMetaSequence::canRemoveValueAtEnd() const
removeValue() を使用してコンテナの末尾から値を削除できる場合はtrue を返し、そうでない場合はfalse を返します。
removeValueAtEnd() およびcanRemoveValueAtBegin()も参照してください 。
bool QMetaSequence::canSetValueAtIndex() const
インデックス指定でコンテナに値を書き込める場合は `true ` を返し、そうでない場合は `false` を返します。
setValueAtIndex()も参照してください 。
bool QMetaSequence::canSetValueAtIterator() const
基となるコンテナが、非constイテレータが指す値への書き込みを許可している場合は `true ` を返し、そうでない場合は `false ` を返します。
hasIterator() およびsetValueAtIterator()も参照してください 。
void QMetaSequence::eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const
可能であれば、container から、イテレータiterator1 とiterator2 の間の値の範囲を削除します。
canEraseValueAtIterator()、begin()、およびend()も参照してください 。
void QMetaSequence::eraseValueAtIterator(void *container, const void *iterator) const
可能であれば、非constのiterator が指す値をcontainer から消去します。
canEraseValueAtIterator()、begin()、およびend()も参照してください 。
[static constexpr, since 6.0] template <typename T> QMetaSequence QMetaSequence::fromContainer()
テンプレートパラメータとして指定された型に対応するQMetaSequence を返します。
この関数は Qt 6.0 で導入されました。
void QMetaSequence::insertValueAtIterator(void *container, const void *iterator, const void *value) const
可能であれば、非constのiterator を考慮した上で、value をcontainer に挿入します。canInsertValueAtIterator()がfalse を返した場合、value は挿入されません。それ以外の場合、isSortable()がtrue を返したときは、その値はiterator が指す値の前に挿入されます。それ以外の場合、value は未指定の位置に挿入されるか、まったく挿入されません。 後者の場合、iterator はヒントとして扱われる。これがvalue の正しい位置を指している場合、この操作はイテレータを使用しないaddValue()よりも高速になる可能性がある。
canInsertValueAtIterator()、isSortable()、begin()、およびend()も参照してください 。
bool QMetaSequence::isSortable() const
基になるコンテナがソート可能であれば `true ` を返し、そうでない場合は `false` を返します。コンテナは、そこに追加された値が定義された位置に配置される場合、ソート可能と見なされます。ソート可能なコンテナへの挿入または追加は、常に成功します。 ソート不可能なコンテナへの挿入や追加は、たとえば、そのコンテナが、挿入しようとしている値をすでに含む `QSet ` である場合など、成功しないことがあります。
addValue()、insertValueAtIterator()、canAddValueAtBegin()、canAddValueAtEnd()、canRemoveValueAtBegin()、およびcanRemoveValueAtEnd()も参照してください 。
void QMetaSequence::removeValue(void *container) const
可能であれば、container から値を削除します。canRemoveValue()がfalse を返した場合、値は削除されません。それ以外の場合、canRemoveValueAtEnd()がtrue を返したときは、container の最後の値が削除されます。それ以外の場合、canRemoveValueAtBegin()がtrue を返したときは、container の最初の値が削除されます。それ以外の場合、未指定の値または何も削除されません。
canRemoveValue()、canRemoveValueAtBegin()、canRemoveValueAtEnd()、isSortable()、およびaddValue()も参照してください 。
void QMetaSequence::removeValueAtBegin(void *container) const
可能であれば、container の先頭から値を削除します。canRemoveValueAtBegin()がfalse を返した場合、値は削除されません。
canRemoveValueAtBegin()、isSortable()、およびaddValueAtBegin()も参照してください 。
void QMetaSequence::removeValueAtEnd(void *container) const
可能であれば、container の末尾から値を削除します。canRemoveValueAtEnd()がfalse を返した場合、その値は削除されません。
canRemoveValueAtEnd()、isSortable()、およびaddValueAtEnd()も参照してください 。
void QMetaSequence::setValueAtIndex(void *container, qsizetype index, const void *value) const
可能であれば、パラメータとして渡されたvalue を使用して、container 内のindex にある値を上書きします。
valueAtIndex() およびcanSetValueAtIndex()も参照してください 。
void QMetaSequence::setValueAtIterator(const void *iterator, const void *value) const
可能であれば、非constのiterator が指す値にvalue を書き込みます。
valueAtIterator()、canSetValueAtIterator()、begin()、およびend()も参照してください 。
void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) const
constiterator が指す値を取得し、可能であれば、result が指すメモリ位置にそれを格納します。
canGetValueAtConstIterator()、constBegin()、およびconstEnd()も参照してください 。
void QMetaSequence::valueAtIndex(const void *container, qsizetype index, void *result) const
container 内のindex にある値を取得し、可能であれば、result が指すメモリ位置に格納します。
setValueAtIndex() およびcanGetValueAtIndex()も参照してください 。
void QMetaSequence::valueAtIterator(const void *iterator, void *result) const
非constのiterator が指す値を取得し、可能であればresult が指すメモリ位置に格納します。
setValueAtIterator()、canGetValueAtIterator()、begin()、およびend()も参照してください 。
QMetaType QMetaSequence::valueMetaType() const
コンテナに格納されている値のメタタイプを返します。
関連する非メンバー
[noexcept, since 6.0] bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)
QMetaSequence lhs がQMetaSequence rhs とは異なるコンテナ型を表す場合は、true を返し、それ以外の場合はfalse を返します。
この関数は Qt 6.0 で導入されました。
[noexcept, since 6.0] bool operator==(const QMetaSequence &lhs, const QMetaSequence &rhs)
QMetaSequence lhs がQMetaSequence rhs と同じコンテナ型を表している場合はtrue を返し、そうでない場合はfalse を返します。
この関数は Qt 6.0 で導入されました。
© 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.