19 #ifndef UTILS_ITERABLE_PAIR_HPP_INCLUDED
20 #define UTILS_ITERABLE_PAIR_HPP_INCLUDED
28 inline T begin(
const std::pair<T, T>&
p) {
33 inline T
end(
const std::pair<T, T>&
p) {
39 inline T cbegin(
const std::pair<T, T>&
p) {
44 inline T cend(
const std::pair<T, T>&
p) {
49 inline std::reverse_iterator<T> rbegin(
const std::pair<T, T>&
p) {
50 return std::reverse_iterator<T>(p.second);
54 inline std::reverse_iterator<T> rend(
const std::pair<T, T>&
p) {
55 return std::reverse_iterator<T>(p.first);
60 inline std::reverse_iterator<T> crbegin(
const std::pair<T, T>&
p) {
61 return std::reverse_iterator<T>(p.second);
65 inline std::reverse_iterator<T> crend(
const std::pair<T, T>&
p) {
66 return std::reverse_iterator<T>(p.first);