Move QFlags docs from qglobal.cpp to qflags.qdoc
Task-number: QTBUG-106154 Change-Id: Ibcd306c98b71d334d12724e667a5c7bd13a140d7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
79d3fba2eb
commit
d5395219b9
459
src/corelib/global/qflags.qdoc
Normal file
459
src/corelib/global/qflags.qdoc
Normal file
@ -0,0 +1,459 @@
|
||||
// Copyright (C) 2022 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
/*!
|
||||
\class QFlag
|
||||
\inmodule QtCore
|
||||
\brief The QFlag class is a helper data type for QFlags.
|
||||
|
||||
It is equivalent to a plain \c int, except with respect to
|
||||
function overloading and type conversions. You should never need
|
||||
to use this class in your applications.
|
||||
|
||||
\sa QFlags
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::QFlag(int value)
|
||||
|
||||
Constructs a QFlag object that stores the \a value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::QFlag(uint value)
|
||||
\since 5.3
|
||||
|
||||
Constructs a QFlag object that stores the \a value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::QFlag(short value)
|
||||
\since 5.3
|
||||
|
||||
Constructs a QFlag object that stores the \a value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::QFlag(ushort value)
|
||||
\since 5.3
|
||||
|
||||
Constructs a QFlag object that stores the \a value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::operator int() const
|
||||
|
||||
Returns the value stored by the QFlag object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::operator uint() const
|
||||
\since 5.3
|
||||
|
||||
Returns the value stored by the QFlag object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\class QFlags
|
||||
\inmodule QtCore
|
||||
\brief The QFlags class provides a type-safe way of storing
|
||||
OR-combinations of enum values.
|
||||
|
||||
|
||||
\ingroup tools
|
||||
|
||||
The QFlags<Enum> class is a template class, where Enum is an enum
|
||||
type. QFlags is used throughout Qt for storing combinations of
|
||||
enum values.
|
||||
|
||||
The traditional C++ approach for storing OR-combinations of enum
|
||||
values is to use an \c int or \c uint variable. The inconvenience
|
||||
with this approach is that there's no type checking at all; any
|
||||
enum value can be OR'd with any other enum value and passed on to
|
||||
a function that takes an \c int or \c uint.
|
||||
|
||||
Qt uses QFlags to provide type safety. For example, the
|
||||
Qt::Alignment type is simply a typedef for
|
||||
QFlags<Qt::AlignmentFlag>. QLabel::setAlignment() takes a
|
||||
Qt::Alignment parameter, which means that any combination of
|
||||
Qt::AlignmentFlag values, or \c{{ }}, is legal:
|
||||
|
||||
\snippet code/src_corelib_global_qglobal.cpp 0
|
||||
|
||||
If you try to pass a value from another enum or just a plain
|
||||
integer other than 0, the compiler will report an error. If you
|
||||
need to cast integer values to flags in a untyped fashion, you can
|
||||
use the explicit QFlags constructor as cast operator.
|
||||
|
||||
If you want to use QFlags for your own enum types, use
|
||||
the Q_DECLARE_FLAGS() and Q_DECLARE_OPERATORS_FOR_FLAGS().
|
||||
|
||||
Example:
|
||||
|
||||
\snippet code/src_corelib_global_qglobal.cpp 1
|
||||
|
||||
You can then use the \c MyClass::Options type to store
|
||||
combinations of \c MyClass::Option values.
|
||||
|
||||
\section1 Flags and the Meta-Object System
|
||||
|
||||
The Q_DECLARE_FLAGS() macro does not expose the flags to the meta-object
|
||||
system, so they cannot be used by Qt Script or edited in Qt Designer.
|
||||
To make the flags available for these purposes, the Q_FLAG() macro must
|
||||
be used:
|
||||
|
||||
\snippet code/src_corelib_global_qglobal.cpp meta-object flags
|
||||
|
||||
\section1 Naming Convention
|
||||
|
||||
A sensible naming convention for enum types and associated QFlags
|
||||
types is to give a singular name to the enum type (e.g., \c
|
||||
Option) and a plural name to the QFlags type (e.g., \c Options).
|
||||
When a singular name is desired for the QFlags type (e.g., \c
|
||||
Alignment), you can use \c Flag as the suffix for the enum type
|
||||
(e.g., \c AlignmentFlag).
|
||||
|
||||
\sa QFlag
|
||||
*/
|
||||
|
||||
/*!
|
||||
\typedef QFlags::Int
|
||||
\since 5.0
|
||||
|
||||
Typedef for the integer type used for storage as well as for
|
||||
implicit conversion. Either \c int or \c{unsigned int}, depending
|
||||
on whether the enum's underlying type is signed or unsigned.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\typedef QFlags::enum_type
|
||||
|
||||
Typedef for the Enum template type.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template<typename Enum> QFlags<Enum>::QFlags(const QFlags &other)
|
||||
|
||||
Constructs a copy of \a other.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::QFlags(Enum flags)
|
||||
|
||||
Constructs a QFlags object storing the \a flags.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::QFlags()
|
||||
\since 5.15
|
||||
|
||||
Constructs a QFlags object with no flags set.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::QFlags(QFlag flag)
|
||||
|
||||
Constructs a QFlags object initialized with the integer \a flag.
|
||||
|
||||
The QFlag type is a helper type. By using it here instead of \c
|
||||
int, we effectively ensure that arbitrary enum values cannot be
|
||||
cast to a QFlags, whereas untyped enum values (i.e., \c int
|
||||
values) can.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::QFlags(std::initializer_list<Enum> flags)
|
||||
\since 5.4
|
||||
|
||||
Constructs a QFlags object initialized with all \a flags
|
||||
combined using the bitwise OR operator.
|
||||
|
||||
\sa operator|=(), operator|()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator=(const QFlags &other)
|
||||
|
||||
Assigns \e other to this object and returns a reference to this
|
||||
object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator&=(int mask)
|
||||
|
||||
Performs a bitwise AND operation with \a mask and stores the
|
||||
result in this QFlags object. Returns a reference to this object.
|
||||
|
||||
\sa operator&(), operator|=(), operator^=()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator&=(uint mask)
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator&=(Enum mask)
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator&=(QFlags mask)
|
||||
\since 6.2
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator|=(QFlags other)
|
||||
|
||||
Performs a bitwise OR operation with \a other and stores the
|
||||
result in this QFlags object. Returns a reference to this object.
|
||||
|
||||
\sa operator|(), operator&=(), operator^=()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator|=(Enum other)
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator^=(QFlags other)
|
||||
|
||||
Performs a bitwise XOR operation with \a other and stores the
|
||||
result in this QFlags object. Returns a reference to this object.
|
||||
|
||||
\sa operator^(), operator&=(), operator|=()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator^=(Enum other)
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::operator Int() const
|
||||
|
||||
Returns the value stored in the QFlags object as an integer.
|
||||
|
||||
\sa Int
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator|(QFlags other) const
|
||||
|
||||
Returns a QFlags object containing the result of the bitwise OR
|
||||
operation on this object and \a other.
|
||||
|
||||
\sa operator|=(), operator^(), operator&(), operator~()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator|(Enum other) const
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator^(QFlags other) const
|
||||
|
||||
Returns a QFlags object containing the result of the bitwise XOR
|
||||
operation on this object and \a other.
|
||||
|
||||
\sa operator^=(), operator&(), operator|(), operator~()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator^(Enum other) const
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator&(int mask) const
|
||||
|
||||
Returns a QFlags object containing the result of the bitwise AND
|
||||
operation on this object and \a mask.
|
||||
|
||||
\sa operator&=(), operator|(), operator^(), operator~()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator&(uint mask) const
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator&(Enum mask) const
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator&(QFlags mask) const
|
||||
\since 6.2
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator~() const
|
||||
|
||||
Returns a QFlags object that contains the bitwise negation of
|
||||
this object.
|
||||
|
||||
\sa operator&(), operator|(), operator^()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::operator!() const
|
||||
|
||||
Returns \c true if no flag is set (i.e., if the value stored by the
|
||||
QFlags object is 0); otherwise returns \c false.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::testFlag(Enum flag) const
|
||||
\since 4.2
|
||||
|
||||
Returns \c true if the flag \a flag is set, otherwise \c false.
|
||||
|
||||
\note if \a flag contains multiple bits set to 1 (for instance, if
|
||||
it's an enumerator equal to the bitwise-OR of other enumerators)
|
||||
then this function will return \c true if and only if all the bits
|
||||
are set in this flags object. On the other hand, if \a flag contains
|
||||
no bits set to 1 (that is, its value as a integer is 0), then this
|
||||
function will return \c true if and only if this flags object also
|
||||
has no bits set to 1.
|
||||
|
||||
\sa testAnyFlag()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::testFlags(QFlags flags) const noexcept
|
||||
\since 6.2
|
||||
|
||||
Returns \c true if this flags object matches the given \a flags.
|
||||
|
||||
If \a flags has any flags set, this flags object matches precisely
|
||||
if all flags set in \a flags are also set in this flags object.
|
||||
Otherwise, when \a flags has no flags set, this flags object only
|
||||
matches if it also has no flags set.
|
||||
|
||||
\sa testAnyFlags()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::testAnyFlag(Enum flag) const noexcept
|
||||
\since 6.2
|
||||
|
||||
Returns \c true if \b any flag set in \a flag is also set in this
|
||||
flags object, otherwise \c false. If \a flag has no flags set, the
|
||||
return will always be \c false.
|
||||
|
||||
\sa testFlag()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::testAnyFlags(QFlags flags) const noexcept
|
||||
\since 6.2
|
||||
|
||||
Returns \c true if \b any flag set in \a flags is also set in this
|
||||
flags object, otherwise \c false. If \a flags has no flags set, the
|
||||
return will always be \c false.
|
||||
|
||||
\sa testFlags()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::setFlag(Enum flag, bool on)
|
||||
\since 5.7
|
||||
|
||||
Sets the flag \a flag if \a on is \c true or unsets it if
|
||||
\a on is \c false. Returns a reference to this object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum> QFlags<Enum>::fromInt(Int i) noexcept
|
||||
\since 6.2
|
||||
|
||||
Constructs a QFlags object representing the integer value \a i.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> Int QFlags<Enum>::toInt() const noexcept
|
||||
\since 6.2
|
||||
|
||||
Returns the value stored in the QFlags object as an integer. Note
|
||||
that the returned integer may be signed or unsigned, depending on
|
||||
whether the enum's underlying type is signed or unsigned.
|
||||
|
||||
\sa Int
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> size_t qHash(QFlags<Enum> flags, size_t seed = 0) noexcept
|
||||
\since 6.2
|
||||
\relates QFlags
|
||||
|
||||
Calculates the hash for the flags \a flags, using \a seed
|
||||
to seed the calculation.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool operator==(QFlags<Enum> lhs, QFlags<Enum> rhs)
|
||||
\fn template <typename Enum> bool operator==(QFlags<Enum> lhs, Enum rhs)
|
||||
\fn template <typename Enum> bool operator==(Enum lhs, QFlags<Enum> rhs)
|
||||
\since 6.2
|
||||
\relates QFlags
|
||||
|
||||
Compares \a lhs and \a rhs for equality; the two arguments are
|
||||
considered equal if they represent exactly the same value
|
||||
(bitmask).
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool operator!=(QFlags<Enum> lhs, QFlags<Enum> rhs)
|
||||
\fn template <typename Enum> bool operator!=(QFlags<Enum> lhs, Enum rhs)
|
||||
\fn template <typename Enum> bool operator!=(Enum lhs, QFlags<Enum> rhs)
|
||||
\since 6.2
|
||||
\relates QFlags
|
||||
|
||||
Compares \a lhs and \a rhs for inequality; the two arguments are
|
||||
considered different if they don't represent exactly the same value
|
||||
(bitmask).
|
||||
*/
|
||||
|
||||
/*!
|
||||
\macro Q_DECLARE_FLAGS(Flags, Enum)
|
||||
\relates QFlags
|
||||
|
||||
The Q_DECLARE_FLAGS() macro expands to
|
||||
|
||||
\snippet code/src_corelib_global_qglobal.cpp 2
|
||||
|
||||
\a Enum is the name of an existing enum type, whereas \a Flags is
|
||||
the name of the QFlags<\e{Enum}> typedef.
|
||||
|
||||
See the QFlags documentation for details.
|
||||
|
||||
\sa Q_DECLARE_OPERATORS_FOR_FLAGS()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\macro Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
|
||||
\relates QFlags
|
||||
|
||||
The Q_DECLARE_OPERATORS_FOR_FLAGS() macro declares global \c
|
||||
operator|() functions for \a Flags, which is of type QFlags<T>.
|
||||
|
||||
See the QFlags documentation for details.
|
||||
|
||||
\sa Q_DECLARE_FLAGS()
|
||||
*/
|
@ -82,463 +82,6 @@ QT_BEGIN_NAMESPACE
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
/*!
|
||||
\class QFlag
|
||||
\inmodule QtCore
|
||||
\brief The QFlag class is a helper data type for QFlags.
|
||||
|
||||
It is equivalent to a plain \c int, except with respect to
|
||||
function overloading and type conversions. You should never need
|
||||
to use this class in your applications.
|
||||
|
||||
\sa QFlags
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::QFlag(int value)
|
||||
|
||||
Constructs a QFlag object that stores the \a value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::QFlag(uint value)
|
||||
\since 5.3
|
||||
|
||||
Constructs a QFlag object that stores the \a value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::QFlag(short value)
|
||||
\since 5.3
|
||||
|
||||
Constructs a QFlag object that stores the \a value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::QFlag(ushort value)
|
||||
\since 5.3
|
||||
|
||||
Constructs a QFlag object that stores the \a value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::operator int() const
|
||||
|
||||
Returns the value stored by the QFlag object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QFlag::operator uint() const
|
||||
\since 5.3
|
||||
|
||||
Returns the value stored by the QFlag object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\class QFlags
|
||||
\inmodule QtCore
|
||||
\brief The QFlags class provides a type-safe way of storing
|
||||
OR-combinations of enum values.
|
||||
|
||||
|
||||
\ingroup tools
|
||||
|
||||
The QFlags<Enum> class is a template class, where Enum is an enum
|
||||
type. QFlags is used throughout Qt for storing combinations of
|
||||
enum values.
|
||||
|
||||
The traditional C++ approach for storing OR-combinations of enum
|
||||
values is to use an \c int or \c uint variable. The inconvenience
|
||||
with this approach is that there's no type checking at all; any
|
||||
enum value can be OR'd with any other enum value and passed on to
|
||||
a function that takes an \c int or \c uint.
|
||||
|
||||
Qt uses QFlags to provide type safety. For example, the
|
||||
Qt::Alignment type is simply a typedef for
|
||||
QFlags<Qt::AlignmentFlag>. QLabel::setAlignment() takes a
|
||||
Qt::Alignment parameter, which means that any combination of
|
||||
Qt::AlignmentFlag values, or \c{{ }}, is legal:
|
||||
|
||||
\snippet code/src_corelib_global_qglobal.cpp 0
|
||||
|
||||
If you try to pass a value from another enum or just a plain
|
||||
integer other than 0, the compiler will report an error. If you
|
||||
need to cast integer values to flags in a untyped fashion, you can
|
||||
use the explicit QFlags constructor as cast operator.
|
||||
|
||||
If you want to use QFlags for your own enum types, use
|
||||
the Q_DECLARE_FLAGS() and Q_DECLARE_OPERATORS_FOR_FLAGS().
|
||||
|
||||
Example:
|
||||
|
||||
\snippet code/src_corelib_global_qglobal.cpp 1
|
||||
|
||||
You can then use the \c MyClass::Options type to store
|
||||
combinations of \c MyClass::Option values.
|
||||
|
||||
\section1 Flags and the Meta-Object System
|
||||
|
||||
The Q_DECLARE_FLAGS() macro does not expose the flags to the meta-object
|
||||
system, so they cannot be used by Qt Script or edited in Qt Designer.
|
||||
To make the flags available for these purposes, the Q_FLAG() macro must
|
||||
be used:
|
||||
|
||||
\snippet code/src_corelib_global_qglobal.cpp meta-object flags
|
||||
|
||||
\section1 Naming Convention
|
||||
|
||||
A sensible naming convention for enum types and associated QFlags
|
||||
types is to give a singular name to the enum type (e.g., \c
|
||||
Option) and a plural name to the QFlags type (e.g., \c Options).
|
||||
When a singular name is desired for the QFlags type (e.g., \c
|
||||
Alignment), you can use \c Flag as the suffix for the enum type
|
||||
(e.g., \c AlignmentFlag).
|
||||
|
||||
\sa QFlag
|
||||
*/
|
||||
|
||||
/*!
|
||||
\typedef QFlags::Int
|
||||
\since 5.0
|
||||
|
||||
Typedef for the integer type used for storage as well as for
|
||||
implicit conversion. Either \c int or \c{unsigned int}, depending
|
||||
on whether the enum's underlying type is signed or unsigned.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\typedef QFlags::enum_type
|
||||
|
||||
Typedef for the Enum template type.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template<typename Enum> QFlags<Enum>::QFlags(const QFlags &other)
|
||||
|
||||
Constructs a copy of \a other.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::QFlags(Enum flags)
|
||||
|
||||
Constructs a QFlags object storing the \a flags.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::QFlags()
|
||||
\since 5.15
|
||||
|
||||
Constructs a QFlags object with no flags set.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::QFlags(QFlag flag)
|
||||
|
||||
Constructs a QFlags object initialized with the integer \a flag.
|
||||
|
||||
The QFlag type is a helper type. By using it here instead of \c
|
||||
int, we effectively ensure that arbitrary enum values cannot be
|
||||
cast to a QFlags, whereas untyped enum values (i.e., \c int
|
||||
values) can.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::QFlags(std::initializer_list<Enum> flags)
|
||||
\since 5.4
|
||||
|
||||
Constructs a QFlags object initialized with all \a flags
|
||||
combined using the bitwise OR operator.
|
||||
|
||||
\sa operator|=(), operator|()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator=(const QFlags &other)
|
||||
|
||||
Assigns \e other to this object and returns a reference to this
|
||||
object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator&=(int mask)
|
||||
|
||||
Performs a bitwise AND operation with \a mask and stores the
|
||||
result in this QFlags object. Returns a reference to this object.
|
||||
|
||||
\sa operator&(), operator|=(), operator^=()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator&=(uint mask)
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator&=(Enum mask)
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator&=(QFlags mask)
|
||||
\since 6.2
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator|=(QFlags other)
|
||||
|
||||
Performs a bitwise OR operation with \a other and stores the
|
||||
result in this QFlags object. Returns a reference to this object.
|
||||
|
||||
\sa operator|(), operator&=(), operator^=()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator|=(Enum other)
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator^=(QFlags other)
|
||||
|
||||
Performs a bitwise XOR operation with \a other and stores the
|
||||
result in this QFlags object. Returns a reference to this object.
|
||||
|
||||
\sa operator^(), operator&=(), operator|=()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags &QFlags<Enum>::operator^=(Enum other)
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum>::operator Int() const
|
||||
|
||||
Returns the value stored in the QFlags object as an integer.
|
||||
|
||||
\sa Int
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator|(QFlags other) const
|
||||
|
||||
Returns a QFlags object containing the result of the bitwise OR
|
||||
operation on this object and \a other.
|
||||
|
||||
\sa operator|=(), operator^(), operator&(), operator~()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator|(Enum other) const
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator^(QFlags other) const
|
||||
|
||||
Returns a QFlags object containing the result of the bitwise XOR
|
||||
operation on this object and \a other.
|
||||
|
||||
\sa operator^=(), operator&(), operator|(), operator~()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator^(Enum other) const
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator&(int mask) const
|
||||
|
||||
Returns a QFlags object containing the result of the bitwise AND
|
||||
operation on this object and \a mask.
|
||||
|
||||
\sa operator&=(), operator|(), operator^(), operator~()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator&(uint mask) const
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator&(Enum mask) const
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator&(QFlags mask) const
|
||||
\since 6.2
|
||||
|
||||
\overload
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::operator~() const
|
||||
|
||||
Returns a QFlags object that contains the bitwise negation of
|
||||
this object.
|
||||
|
||||
\sa operator&(), operator|(), operator^()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::operator!() const
|
||||
|
||||
Returns \c true if no flag is set (i.e., if the value stored by the
|
||||
QFlags object is 0); otherwise returns \c false.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::testFlag(Enum flag) const
|
||||
\since 4.2
|
||||
|
||||
Returns \c true if the flag \a flag is set, otherwise \c false.
|
||||
|
||||
\note if \a flag contains multiple bits set to 1 (for instance, if
|
||||
it's an enumerator equal to the bitwise-OR of other enumerators)
|
||||
then this function will return \c true if and only if all the bits
|
||||
are set in this flags object. On the other hand, if \a flag contains
|
||||
no bits set to 1 (that is, its value as a integer is 0), then this
|
||||
function will return \c true if and only if this flags object also
|
||||
has no bits set to 1.
|
||||
|
||||
\sa testAnyFlag()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::testFlags(QFlags flags) const noexcept
|
||||
\since 6.2
|
||||
|
||||
Returns \c true if this flags object matches the given \a flags.
|
||||
|
||||
If \a flags has any flags set, this flags object matches precisely
|
||||
if all flags set in \a flags are also set in this flags object.
|
||||
Otherwise, when \a flags has no flags set, this flags object only
|
||||
matches if it also has no flags set.
|
||||
|
||||
\sa testAnyFlags()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::testAnyFlag(Enum flag) const noexcept
|
||||
\since 6.2
|
||||
|
||||
Returns \c true if \b any flag set in \a flag is also set in this
|
||||
flags object, otherwise \c false. If \a flag has no flags set, the
|
||||
return will always be \c false.
|
||||
|
||||
\sa testFlag()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool QFlags<Enum>::testAnyFlags(QFlags flags) const noexcept
|
||||
\since 6.2
|
||||
|
||||
Returns \c true if \b any flag set in \a flags is also set in this
|
||||
flags object, otherwise \c false. If \a flags has no flags set, the
|
||||
return will always be \c false.
|
||||
|
||||
\sa testFlags()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags QFlags<Enum>::setFlag(Enum flag, bool on)
|
||||
\since 5.7
|
||||
|
||||
Sets the flag \a flag if \a on is \c true or unsets it if
|
||||
\a on is \c false. Returns a reference to this object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> QFlags<Enum> QFlags<Enum>::fromInt(Int i) noexcept
|
||||
\since 6.2
|
||||
|
||||
Constructs a QFlags object representing the integer value \a i.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> Int QFlags<Enum>::toInt() const noexcept
|
||||
\since 6.2
|
||||
|
||||
Returns the value stored in the QFlags object as an integer. Note
|
||||
that the returned integer may be signed or unsigned, depending on
|
||||
whether the enum's underlying type is signed or unsigned.
|
||||
|
||||
\sa Int
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> size_t qHash(QFlags<Enum> flags, size_t seed = 0) noexcept
|
||||
\since 6.2
|
||||
\relates QFlags
|
||||
|
||||
Calculates the hash for the flags \a flags, using \a seed
|
||||
to seed the calculation.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool operator==(QFlags<Enum> lhs, QFlags<Enum> rhs)
|
||||
\fn template <typename Enum> bool operator==(QFlags<Enum> lhs, Enum rhs)
|
||||
\fn template <typename Enum> bool operator==(Enum lhs, QFlags<Enum> rhs)
|
||||
\since 6.2
|
||||
\relates QFlags
|
||||
|
||||
Compares \a lhs and \a rhs for equality; the two arguments are
|
||||
considered equal if they represent exactly the same value
|
||||
(bitmask).
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn template <typename Enum> bool operator!=(QFlags<Enum> lhs, QFlags<Enum> rhs)
|
||||
\fn template <typename Enum> bool operator!=(QFlags<Enum> lhs, Enum rhs)
|
||||
\fn template <typename Enum> bool operator!=(Enum lhs, QFlags<Enum> rhs)
|
||||
\since 6.2
|
||||
\relates QFlags
|
||||
|
||||
Compares \a lhs and \a rhs for inequality; the two arguments are
|
||||
considered different if they don't represent exactly the same value
|
||||
(bitmask).
|
||||
*/
|
||||
|
||||
/*!
|
||||
\macro Q_DECLARE_FLAGS(Flags, Enum)
|
||||
\relates QFlags
|
||||
|
||||
The Q_DECLARE_FLAGS() macro expands to
|
||||
|
||||
\snippet code/src_corelib_global_qglobal.cpp 2
|
||||
|
||||
\a Enum is the name of an existing enum type, whereas \a Flags is
|
||||
the name of the QFlags<\e{Enum}> typedef.
|
||||
|
||||
See the QFlags documentation for details.
|
||||
|
||||
\sa Q_DECLARE_OPERATORS_FOR_FLAGS()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\macro Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
|
||||
\relates QFlags
|
||||
|
||||
The Q_DECLARE_OPERATORS_FOR_FLAGS() macro declares global \c
|
||||
operator|() functions for \a Flags, which is of type QFlags<T>.
|
||||
|
||||
See the QFlags documentation for details.
|
||||
|
||||
\sa Q_DECLARE_FLAGS()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\headerfile <QtGlobal>
|
||||
\inmodule QtCore
|
||||
|
Loading…
x
Reference in New Issue
Block a user