6 #ifndef SWIFT_MISC_SETBUILDER_H
7 #define SWIFT_MISC_SETBUILDER_H
16 #include <QStringList>
38 operator QList<T>() const & {
return sortAndDeduplicate(m_list); }
39 operator QList<T>() && {
return sortAndDeduplicate(std::move(m_list)); }
40 operator QSet<T>() const & {
return convertTo<QSet>(sortAndDeduplicate(m_list)); }
41 operator QSet<T>() && {
return convertTo<QSet>(sortAndDeduplicate(std::move(m_list))); }
42 operator std::set<T>() const & {
return convertTo<std::set>(sortAndDeduplicate(m_list)); }
43 operator std::set<T>() && {
return convertTo<std::set>(sortAndDeduplicate(std::move(m_list))); }
44 operator std::vector<T>() const & {
return convertTo<std::vector>(sortAndDeduplicate(m_list)); }
45 operator std::vector<T>() && {
return convertTo<std::vector>(sortAndDeduplicate(std::move(m_list))); }
46 template <
typename U = T,
typename = std::enable_if_t<std::is_same_v<U, QString>>>
49 return sortAndDeduplicate(m_list);
51 template <
typename U = T,
typename = std::enable_if_t<std::is_same_v<U, QString>>>
54 return sortAndDeduplicate(std::move(m_list));
68 template <
template <
typename...>
class C>
69 static C<T> convertTo(
QList<T> &&list)
71 return C<T>(std::make_move_iterator(list.
begin()), std::make_move_iterator(list.
end()));
Build a QSet more efficiently when calling insert() in a for loop.
bool isEmpty() const
True if no elements have been inserted.
void insert(T &&value)
Add an element to the set. Runs in amortized constant time.
void insert(const T &value)
Add an element to the set. Runs in amortized constant time.
Free functions in swift::misc.
QList< T >::iterator begin()
QList< T >::iterator end()
QList< T >::iterator erase(QList< T >::const_iterator begin, QList< T >::const_iterator end)
bool isEmpty() const const
void push_back(QList< T >::parameter_type value)