aboutsummaryrefslogtreecommitdiff
path: root/cutl/container/pointer-iterator.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'cutl/container/pointer-iterator.hxx')
-rw-r--r--cutl/container/pointer-iterator.hxx126
1 files changed, 0 insertions, 126 deletions
diff --git a/cutl/container/pointer-iterator.hxx b/cutl/container/pointer-iterator.hxx
deleted file mode 100644
index 630b5b3..0000000
--- a/cutl/container/pointer-iterator.hxx
+++ /dev/null
@@ -1,126 +0,0 @@
-// file : cutl/container/pointer-iterator.hxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
-// license : MIT; see accompanying LICENSE file
-
-#ifndef CUTL_CONTAINER_POINTER_ITERATOR_HXX
-#define CUTL_CONTAINER_POINTER_ITERATOR_HXX
-
-#include <iterator> // std::iterator_traits
-
-#include <cutl/meta/remove-p.hxx>
-
-namespace cutl
-{
- namespace container
- {
- template <typename I>
- class pointer_iterator
- {
- public:
- typedef
- typename meta::remove_p<typename std::iterator_traits<I>::value_type>::r
- value_type;
-
- typedef
- typename std::iterator_traits<I>::iterator_category
- iterator_category;
-
- typedef
- typename std::iterator_traits<I>::difference_type
- difference_type;
-
- typedef value_type& reference;
- typedef value_type* pointer;
- typedef I base_iterator;
-
- public:
- pointer_iterator ()
- : i_ () // I can be of a pointer type.
- {
- }
-
- pointer_iterator (I const& i)
- : i_ (i)
- {
- }
-
- public:
- reference
- operator* () const
- {
- return **i_;
- }
-
- pointer
- operator-> () const
- {
- return *i_;
- }
-
- I const&
- base () const
- {
- return i_;
- }
-
- public:
- // Forward iterator requirements.
- //
- pointer_iterator&
- operator++ ()
- {
- ++i_;
- return *this;
- }
-
- pointer_iterator
- operator++ (int)
- {
- pointer_iterator r (*this);
- ++i_;
- return r;
- }
-
- pointer_iterator&
- operator-- ()
- {
- --i_;
- return *this;
- }
-
- pointer_iterator
- operator-- (int)
- {
- pointer_iterator r (*this);
- --i_;
- return r;
- }
-
- private:
- I i_;
- };
-
- template <typename I>
- inline bool
- operator== (pointer_iterator<I> const& a, pointer_iterator<I> const& b)
- {
- return a.base () == b.base ();
- }
-
- template <typename I>
- inline bool
- operator!= (pointer_iterator<I> const& a, pointer_iterator<I> const& b)
- {
- return a.base () != b.base ();
- }
-
- template <typename I>
- inline typename pointer_iterator<I>::difference_type
- operator- (pointer_iterator<I> const& a, pointer_iterator<I> const& b)
- {
- return a.base () - b.base ();
- }
- }
-}
-
-#endif // CUTL_CONTAINER_POINTER_ITERATOR_HXX