split PressSpace action into modular pieces

This commit is contained in:
Andrzej Rybczak
2015-05-17 18:10:42 +02:00
parent c68631b2f0
commit 2caf08aaa7
36 changed files with 306 additions and 275 deletions

View File

@@ -24,6 +24,36 @@
#include <boost/locale/encoding_utf.hpp>
#include <utility>
template <typename BaseT>
struct reversed_iteration
{
reversed_iteration(BaseT &base_)
: base(base_) { }
BaseT &base;
};
template <typename BaseT>
reversed_iteration<BaseT> reverse_iteration(BaseT &base_) {
return reversed_iteration<BaseT>(base_);
}
template <typename BaseT>
auto begin(reversed_iteration<BaseT> &rev) -> decltype(rev.base.rbegin()) {
return rev.base.rbegin();
}
template <typename BaseT>
auto begin(reversed_iteration<const BaseT> &rev) -> decltype(rev.base.rbegin()) {
return rev.base.rbegin();
}
template <typename BaseT>
auto end(reversed_iteration<BaseT> &rev) -> decltype(rev.base.rend()) {
return rev.base.rend();
}
template <typename BaseT>
auto end(reversed_iteration<const BaseT> &rev) -> decltype(rev.base.rend()) {
return rev.base.rend();
}
template <typename ValueT>
struct pointer_extractor
{