4#ifndef QTCORE_QMINIMALFLATSET_P_H
5#define QTCORE_QMINIMALFLATSET_P_H
18#include <QtCore/qcontainerfwd.h>
19#include <QtCore/qfunctionaltools_impl.h>
20#include <QtCore/private/qglobal_p.h>
23#ifdef QMINIMAL_FLAT_SET_DEBUG
24# include <QtCore/qscopeguard.h>
25# include <QtCore/qdebug.h>
26# define QMINIMAL_FLAT_SET_PRINT_AT_END \
27 const auto sg = qScopeGuard([&] { qDebug() << this << *this; });
29# define QMINIMAL_FLAT_SET_PRINT_AT_END
47template <
typename T,
typename Container = QList<T>,
typename Compare = std::less<T>>
82 auto size()
const {
return c.size(); }
89 const auto r = lookup(
v);
93 return {
c.insert(
r.it, std::move(
v)),
true};
99 const auto r = lookup(
v);
101 return {
r.it,
false};
103 return {
c.insert(
r.it,
v),
true};
109 const auto r = lookup(
v);
117 return lookup(
v).exists;
120 const Container &
values() const & {
return c; }
121 Container
values() && {
return std::move(
c); }
131 auto cmp = std::ref(this->
object());
133 const auto it = std::lower_bound(
c.cbegin(),
c.cend(),
v, cmp);
137#ifdef QMINIMAL_FLAT_SET_DEBUG
141 dbg.nospace() <<
"QMinimalFlatSet{";
149#undef QMINIMAL_FLAT_SET_PRINT_AT_END
151template <
typename T, qsizetype N = QVarLengthArrayDefaultPrealloc>
key_compare key_comp() const
const_reverse_iterator reverse_iterator
reverse_iterator rend() const
std::pair< iterator, bool > insert(value_type &&v)
void erase(const value_type &v)
reverse_iterator rbegin() const
typename Container::const_iterator const_iterator
const Container & values() const &
typename Container::const_reverse_iterator const_reverse_iterator
reverse_iterator crend() const
reverse_iterator crbegin() const
value_compare value_comp() const
bool contains(const value_type &v) const
void remove(const value_type &v)
QMinimalFlatSet(const Compare &cmp)
QMinimalFlatSet()=default
std::pair< iterator, bool > insert(const value_type &v)
const_iterator cend() const noexcept
QSet< QString >::iterator it
Combined button and popup list for selecting options.
typename std::conditional_t< std::conjunction_v< std::is_empty< Object >, std::negation< std::is_final< Object > > >, detail::StorageEmptyBaseClassOptimization< Object, Tag >, detail::StorageByValue< Object, Tag > > CompactStorage
GLsizei const GLfloat * v
[13]
#define QMINIMAL_FLAT_SET_PRINT_AT_END
QFuture< QSet< QChar > > set
[10]