PRCYCoin
2.0.0.7rc1
P2P Digital Currency
src
reverse_iterate.h
Go to the documentation of this file.
1
// Copyright (c) 2015-2018 The PIVX developers
2
// Copyright (c) 2018-2020 The DAPS Project developers
3
// Distributed under the MIT software license, see the accompanying
4
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6
#pragma once
7
/*
8
Template used for reverse iteration in C++11 range-based for loops.
9
std::vector<int> v = {1, 2, 3, 4, 5};
10
for (auto x : reverse_iterate(v))
11
std::cout << x << " ";
12
*/
13
14
template
<
typename
T>
15
class
reverse_range
16
{
17
T &
x
;
18
19
public
:
20
reverse_range
(T &
x
) :
x
(
x
) {}
21
22
auto
begin
() const -> decltype(this->
x
.rbegin())
23
{
24
return
x
.rbegin();
25
}
26
27
auto
end
() const -> decltype(this->
x
.rend())
28
{
29
return
x
.rend();
30
}
31
};
32
33
template
<
typename
T>
34
reverse_range<T>
reverse_iterate
(T &x)
35
{
36
return
reverse_range<T>
(x);
37
}
38
reverse_iterate
reverse_range< T > reverse_iterate(T &x)
Definition:
reverse_iterate.h:34
reverse_range::end
auto end() const -> decltype(this->x.rend())
Definition:
reverse_iterate.h:27
reverse_range::begin
auto begin() const -> decltype(this->x.rbegin())
Definition:
reverse_iterate.h:22
reverse_range::x
T & x
Definition:
reverse_iterate.h:17
reverse_range
Definition:
reverse_iterate.h:15
reverse_range::reverse_range
reverse_range(T &x)
Definition:
reverse_iterate.h:20
Generated on Tue Apr 28 2026 00:02:55 for PRCYCoin by
1.8.17