このページでは

QVariant::Reference Class

template <typename Indirect> class QVariant::Reference

QVariant::Reference は、QVariant への非const参照として機能します。詳細...

このクラスは Qt 6.11 で導入されました。

パブリック関数

Reference(Indirect &&referred)
Reference(const Indirect &referred)
Reference(const QVariant::Reference<Indirect> &)
Reference(QVariant::Reference<Indirect> &&)
~Reference()
operator QVariant() const
QVariant::Reference<Indirect> &operator=(QVariant::ConstReference<Indirect> &&value)
QVariant::Reference<Indirect> &operator=(QVariant::Reference<Indirect> &&value)
QVariant::Reference<Indirect> &operator=(const QVariant &value)
QVariant::Reference<Indirect> &operator=(const QVariant::ConstReference<Indirect> &value)
QVariant::Reference<Indirect> &operator=(const QVariant::Reference<Indirect> &value)

詳細な説明

ジェネリックイテレータは、各ステップで実際にQVariant をインスタンス化しないため、operator*() からその参照を返すことはできません。QVariant::Reference<Indirect> は、QVariant への実際の参照と同じ機能を提供しますが、Indirect 型の参照値によって裏付けられています。このテンプレートは、QMetaSequence::Iterator および QMetaAssociation::Iterator に対して実装されています。

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

[explicit noexcept(...)] Reference::Reference(Indirect &&referred)

referred からQVariant::Reference を作成します。

注: std::is_nothrow_move_constructible_v<Indirect> がtrue の場合、この関数は noexcept です。

[explicit noexcept(...)] Reference::Reference(const Indirect &referred)

referred からQVariant::Reference を作成します。

注: std::is_nothrow_copy_constructible_v<Indirect> がtrue の場合、この関数は noexcept です。

[default] Reference::Reference(const QVariant::Reference<Indirect> &)

Reference のインスタンスをコピーして生成します。

[delete] Reference::Reference(QVariant::Reference<Indirect> &&)

Reference のインスタンスをMoveコンストラクタで生成します。この関数は削除されています。

[default] Reference::~Reference()

Reference のインスタンスを破棄します。

[noexcept(...)] Reference::operator QVariant() const

QVariant への参照を解除します。デフォルトでは、一時的なQVariant::ConstReference をインスタンス化して、それを参照解除します。一時的なConstReference のインスタンス化にコストがかかる場合は、このメソッドを特化させる必要があります。

注: Indirect::CanNoexceptConvertToQVariant がtrue の場合、この関数は noexcept となります。

[noexcept(...)] QVariant::Reference<Indirect> &Reference::operator=(QVariant::ConstReference<Indirect> &&value)

この `QVariant::Reference` が指す値に、新しい `value ` を代入します。

注: Indirect::CanNoexceptAssignQVariant がtrue の場合、この関数は noexcept です。

[noexcept(...)] QVariant::Reference<Indirect> &Reference::operator=(QVariant::Reference<Indirect> &&value)

この `QVariant::Reference` が指す値に、新しい `value ` を代入します。

注: Indirect::CanNoexceptAssignQVariant がtrue である場合、この関数はnoexceptとなります 。

[noexcept(...)] QVariant::Reference<Indirect> &Reference::operator=(const QVariant &value)

この `QVariant::Reference` が参照する値に、新しい `value ` を割り当てます。このメソッドは、各 `Indirect` 型ごとに特化させる必要があります。`QMetaSequence::Iterator` および `QMetaAssociation::Iterator` に対しては、あらかじめ定義されています。

注: Indirect::CanNoexceptAssignQVariant がtrue の場合、この関数は noexcept です。

[noexcept(...)] QVariant::Reference<Indirect> &Reference::operator=(const QVariant::ConstReference<Indirect> &value)

この `QVariant::Reference` が指す値に、新しい `value ` を代入します。

注: Indirect::CanNoexceptAssignQVariant がtrue の場合、この関数は noexcept です。

[noexcept(...)] QVariant::Reference<Indirect> &Reference::operator=(const QVariant::Reference<Indirect> &value)

この `QVariant::Reference` が指す値に、新しい `value ` を代入します。

注: Indirect::CanNoexceptAssignQVariant がtrue の場合、この関数は noexcept です。

© 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.