QEverCloud  6.1.0
Unofficial Evernote Cloud API for Qt
Helpers.h
Go to the documentation of this file.
1 
8 #ifndef QEVERCLOUD_HELPERS_H
9 #define QEVERCLOUD_HELPERS_H
10 
11 #include <QtGlobal>
12 #include <QObject>
13 
14 #include "VersionInfo.h"
15 
16 namespace 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)
23 template <typename T>
24 Q_DECL_CONSTEXPR
25 typename std::add_const<T>::type & qAsConst(T & t) Q_DECL_NOTHROW
26 {
27  return t;
28 }
29 
30 // prevent rvalue arguments:
31 template <typename T>
32 void qAsConst(const T &&) Q_DECL_EQ_DELETE;
33 
34 #endif // QT_VERSION_CHECK
35 
37 
38 template <typename Container>
40 {
41 public:
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 
66 public:
68  : m_container(container)
69  {}
70 
72  return m_container.begin();
73  }
74 
76  return m_container.end();
77  }
78 
79 private:
80  Container & m_container;
81 };
82 
84 
85 template <typename Container>
87 {
88 public:
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 
113 public:
114  QAssociativeContainerConstReferenceWrapper(const Container & container)
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 
126 private:
127  const Container & m_container;
128 };
129 
131 
132 template <class Container>
134 {
136 }
137 
139 
140 template <class Container>
142  const Container & container)
143 {
145 }
146 
147 } // namespace qevercloud
148 
149 #endif // QEVERCLOUD_HELPERS_H
qevercloud::QAssociativeContainerReferenceWrapper::begin
iterator begin()
Definition: Helpers.h:71
qevercloud::QAssociativeContainerReferenceWrapper
Definition: Helpers.h:40
qevercloud::QAssociativeContainerReferenceWrapper::iterator::operator!=
bool operator!=(const iterator &other) const
Definition: Helpers.h:60
qevercloud::QAssociativeContainerReferenceWrapper::iterator::operator*
Container::iterator operator*()
Definition: Helpers.h:49
qevercloud
Definition: AsyncResult.h:21
qevercloud::QAssociativeContainerReferenceWrapper::QAssociativeContainerReferenceWrapper
QAssociativeContainerReferenceWrapper(Container &container)
Definition: Helpers.h:67
qevercloud::QAssociativeContainerReferenceWrapper::iterator::iterator
iterator(const typename Container::iterator it)
Definition: Helpers.h:45
qevercloud::QAssociativeContainerConstReferenceWrapper::iterator::operator++
iterator & operator++()
Definition: Helpers.h:101
qevercloud::QAssociativeContainerConstReferenceWrapper
Definition: Helpers.h:87
qevercloud::QAssociativeContainerReferenceWrapper::iterator::m_iterator
Container::iterator m_iterator
Definition: Helpers.h:44
qevercloud::QAssociativeContainerConstReferenceWrapper::iterator::operator*
Container::const_iterator operator*()
Definition: Helpers.h:96
qevercloud::QAssociativeContainerConstReferenceWrapper::iterator::iterator
iterator(const typename Container::const_iterator it)
Definition: Helpers.h:92
qevercloud::toRange
QAssociativeContainerReferenceWrapper< Container > toRange(Container &container)
Definition: Helpers.h:133
qevercloud::QAssociativeContainerConstReferenceWrapper::iterator::operator!=
bool operator!=(const iterator &other) const
Definition: Helpers.h:107
qevercloud::QAssociativeContainerReferenceWrapper::iterator::operator++
iterator & operator++()
Definition: Helpers.h:54
qevercloud::QAssociativeContainerConstReferenceWrapper::QAssociativeContainerConstReferenceWrapper
QAssociativeContainerConstReferenceWrapper(const Container &container)
Definition: Helpers.h:114
qevercloud::QAssociativeContainerConstReferenceWrapper::end
iterator end() const
Definition: Helpers.h:122
qevercloud::QAssociativeContainerConstReferenceWrapper::iterator
Definition: Helpers.h:90
qevercloud::QAssociativeContainerConstReferenceWrapper::iterator::m_iterator
Container::const_iterator m_iterator
Definition: Helpers.h:91
qevercloud::QAssociativeContainerReferenceWrapper::iterator
Definition: Helpers.h:43
qevercloud::QAssociativeContainerReferenceWrapper::end
iterator end()
Definition: Helpers.h:75
qevercloud::QAssociativeContainerConstReferenceWrapper::begin
iterator begin() const
Definition: Helpers.h:118