QEverCloud 6.1.0
Unofficial Evernote Cloud API for Qt
Loading...
Searching...
No Matches
Helpers.h
Go to the documentation of this file.
1
7
8#ifndef QEVERCLOUD_HELPERS_H
9#define QEVERCLOUD_HELPERS_H
10
11#include <QtGlobal>
12#include <QObject>
13
14#include "VersionInfo.h"
15
16namespace qevercloud {
17
19
20#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0)
21
22// this adds const to non-const objects (like std::as_const)
23template <typename T>
24Q_DECL_CONSTEXPR
25typename std::add_const<T>::type & qAsConst(T & t) Q_DECL_NOTHROW
26{
27 return t;
28}
29
30// prevent rvalue arguments:
31template <typename T>
32void qAsConst(const T &&) Q_DECL_EQ_DELETE;
33
34#endif // QT_VERSION_CHECK
35
37
38template <typename Container>
40{
41public:
42 struct iterator
43 {
44 typename Container::iterator m_iterator;
45 iterator(const typename Container::iterator it) :
46 m_iterator(it)
47 {}
48
49 typename Container::iterator operator*()
50 {
51 return m_iterator;
52 }
53
55 {
56 ++m_iterator;
57 return *this;
58 }
59
60 bool operator!=(const iterator & other) const
61 {
62 return m_iterator != other.m_iterator;
63 }
64 };
65
66public:
68 : m_container(container)
69 {}
70
72 return m_container.begin();
73 }
74
76 return m_container.end();
77 }
78
79private:
80 Container & m_container;
81};
82
84
85template <typename Container>
87{
88public:
89 struct iterator
90 {
91 typename Container::const_iterator m_iterator;
92 iterator(const typename Container::const_iterator it) :
93 m_iterator(it)
94 {}
95
96 typename Container::const_iterator operator*()
97 {
98 return m_iterator;
99 }
100
102 {
103 ++m_iterator;
104 return *this;
105 }
106
107 bool operator!=(const iterator & other) const
108 {
109 return m_iterator != other.m_iterator;
110 }
111 };
112
113public:
115 : m_container(container)
116 {}
117
118 iterator begin() const {
119 return m_container.begin();
120 }
121
122 iterator end() const {
123 return m_container.end();
124 }
125
126private:
127 const Container & m_container;
128};
129
131
132template <class Container>
137
139
140template <class Container>
146
147} // namespace qevercloud
148
149#endif // QEVERCLOUD_HELPERS_H
QAssociativeContainerConstReferenceWrapper(const Container &container)
Definition Helpers.h:114
iterator begin() const
Definition Helpers.h:118
iterator end() const
Definition Helpers.h:122
iterator begin()
Definition Helpers.h:71
QAssociativeContainerReferenceWrapper(Container &container)
Definition Helpers.h:67
iterator end()
Definition Helpers.h:75
Definition AsyncResult.h:21
QAssociativeContainerReferenceWrapper< Container > toRange(Container &container)
Definition Helpers.h:133
iterator(const typename Container::const_iterator it)
Definition Helpers.h:92
bool operator!=(const iterator &other) const
Definition Helpers.h:107
Container::const_iterator m_iterator
Definition Helpers.h:91
Container::const_iterator operator*()
Definition Helpers.h:96
bool operator!=(const iterator &other) const
Definition Helpers.h:60
Container::iterator m_iterator
Definition Helpers.h:44
iterator(const typename Container::iterator it)
Definition Helpers.h:45
Container::iterator operator*()
Definition Helpers.h:49