本页内容

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 实例。该函数已被删除。

[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)

将一个新的value 赋值给此QVariant::Reference 所引用的值。

注意: 当Indirect::CanNoexceptAssignQVariant 为true 时,此 函数为 noexcept。

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

将一个新的value 赋值给此QVariant::Reference 所引用的值。

注意: 当Indirect::CanNoexceptAssignQVariant 为true 时,此 函数为 noexcept。

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

将一个新的value 赋值给此QVariant::Reference 所引用的值。此方法需要针对每种Indirect类型进行特化。它已为QMetaSequence::Iterator和QMetaAssociation::Iterator预定义。

注意: 当Indirect::CanNoexceptAssignQVariant 为true 时,此 函数为 noexcept。

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

将一个新的value 赋值给此QVariant::Reference 所引用的值。

注意: 当Indirect::CanNoexceptAssignQVariant 为true 时,此 函数为 noexcept。

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

将一个新的value 赋值给此QVariant::Reference 所引用的值。

注意: 当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.