mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-20 05:13:58 +00:00
committed by
Konstantin Pastbin
parent
c9cbb64f12
commit
76ffc99abd
27
libs/base/stl_iterator.hpp
Normal file
27
libs/base/stl_iterator.hpp
Normal file
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <boost/iterator/iterator_facade.hpp>
|
||||
|
||||
namespace stl_iterator_detail
|
||||
{
|
||||
struct Dummy
|
||||
{
|
||||
template <class T> Dummy & operator=(T const &) { return *this; }
|
||||
};
|
||||
} // namespace stl_iterator_detail
|
||||
|
||||
class CounterIterator :
|
||||
public boost::iterator_facade<CounterIterator, stl_iterator_detail::Dummy, boost::forward_traversal_tag>
|
||||
{
|
||||
size_t m_count;
|
||||
public:
|
||||
CounterIterator() : m_count(0) {}
|
||||
size_t GetCount() const { return m_count; }
|
||||
|
||||
stl_iterator_detail::Dummy & dereference() const
|
||||
{
|
||||
static stl_iterator_detail::Dummy dummy;
|
||||
return dummy;
|
||||
}
|
||||
void increment() { ++m_count; }
|
||||
};
|
||||
Reference in New Issue
Block a user