4#ifndef QUNIQUEHANDLE_P_H
5#define QUNIQUEHANDLE_P_H
18#include <QtCore/qtconfigmacros.h>
19#include <QtCore/qassert.h>
106template <
typename HandleTraits>
110 using Type =
typename HandleTraits::Type;
119 : m_handle{
other.release() }
129 if (
this != std::addressof(rhs))
130 reset(rhs.release());
141 return m_handle != HandleTraits::invalidValue();
144 [[nodiscard]]
explicit operator bool() const noexcept
166 m_handle = HandleTraits::invalidValue();
181 const bool success = HandleTraits::close(m_handle);
184 m_handle = HandleTraits::invalidValue();
189 return lhs.get() == rhs.get();
194 return lhs.get() != rhs.get();
199 return lhs.get() < rhs.get();
204 return lhs.get() <= rhs.get();
209 return lhs.get() > rhs.get();
214 return lhs.get() >= rhs.get();
218 Type m_handle{ HandleTraits::invalidValue() };
friend bool operator!=(const QUniqueHandle &lhs, const QUniqueHandle &rhs) noexcept
void reset(const Type &handle) noexcept
QUniqueHandle(const QUniqueHandle &)=delete
QUniqueHandle & operator=(const QUniqueHandle &)=delete
friend bool operator>=(const QUniqueHandle &lhs, const QUniqueHandle &rhs) noexcept
friend bool operator<(const QUniqueHandle &lhs, const QUniqueHandle &rhs) noexcept
~QUniqueHandle() noexcept
QUniqueHandle & operator=(QUniqueHandle &&rhs) noexcept
friend bool operator>(const QUniqueHandle &lhs, const QUniqueHandle &rhs) noexcept
Type get() const noexcept
friend bool operator<=(const QUniqueHandle &lhs, const QUniqueHandle &rhs) noexcept
QUniqueHandle(const Type &handle) noexcept
Type * operator&() noexcept
bool isValid() const noexcept
QUniqueHandle(QUniqueHandle &&other) noexcept
friend bool operator==(const QUniqueHandle &lhs, const QUniqueHandle &rhs) noexcept
Combined button and popup list for selecting options.
GLuint64 GLenum void * handle