PIVX Core  5.6.99
P2P Digital Currency
reverse_iterate.h
Go to the documentation of this file.
1 // Copyright (c) 2017-2020 The PIVX Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef PIVX_REVERSE_ITERATE_H
6 #define PIVX_REVERSE_ITERATE_H
7 
16 template <typename T>
18 {
19  T &m_x;
20 
21 public:
22  explicit reverse_range(T &x) : m_x(x) {}
23 
24  auto begin() const -> decltype(this->m_x.rbegin())
25  {
26  return m_x.rbegin();
27  }
28 
29  auto end() const -> decltype(this->m_x.rend())
30  {
31  return m_x.rend();
32  }
33 };
34 
35 template <typename T>
37 {
38  return reverse_range<T>(x);
39 }
40 
41 #endif // PIVX_REVERSE_ITERATE_H
Template used for reverse iteration in C++11 range-based for loops.
auto end() const -> decltype(this->m_x.rend())
auto begin() const -> decltype(this->m_x.rbegin())
#define T(expected, seed, data)
reverse_range< T > reverse_iterate(T &x)