14 #ifndef __INCLUDED__SCOPIRA_TOOL_ITERATOR_IMP_H__ 15 #define __INCLUDED__SCOPIRA_TOOL_ITERATOR_IMP_H__ 20 #include <scopira/tool/iterator.h> 26 template <
class T>
struct deref {
28 T operator()(T r)
const {
return r; }
30 template <
class TOUT,
class DEF,
class TIN =
typename DEF::in_type >
struct deref_first {
32 TOUT operator()(TIN r) {
return DEF()(r).first; }
34 template <
class TOUT,
class DEF,
class TIN =
typename DEF::in_type >
struct deref_second {
36 TOUT operator()(TIN r) {
return DEF()(r).second; }
38 template <
class TOUT,
class DEF,
class TIN =
typename DEF::in_type >
struct deref_ptr {
40 TOUT operator()(TIN a) {
return *DEF()(a); }
42 template <
class TOUT,
class DEF,
class TIN =
typename DEF::in_type >
struct deref_objauto {
44 TOUT operator()(TIN a) {
return DEF()(a).
get(); }
61 ITER m_current, m_end;
65 : m_current(_start), m_end(_end) { }
68 return DEF()(*m_current);
71 virtual bool valid(
void)
const {
72 return m_current != m_end;
Definition: archiveflow.h:20