mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
add sprout::iterator, and update copyright
This commit is contained in:
parent
759265d624
commit
0918194078
2792 changed files with 3088 additions and 3003 deletions
|
@ -1,5 +1,5 @@
|
|||
/*=============================================================================
|
||||
Copyright (c) 2011-2016 Bolero MURAKAMI
|
||||
Copyright (c) 2011-2017 Bolero MURAKAMI
|
||||
https://github.com/bolero-MURAKAMI/Sprout
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
|
@ -8,13 +8,12 @@
|
|||
#ifndef SPROUT_ITERATOR_MOVE_ITERATOR_HPP
|
||||
#define SPROUT_ITERATOR_MOVE_ITERATOR_HPP
|
||||
|
||||
#include <iterator>
|
||||
#include <utility>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/iterator/next.hpp>
|
||||
#include <sprout/iterator/prev.hpp>
|
||||
#include <sprout/iterator/distance.hpp>
|
||||
#include <sprout/iterator/const_iterator_cast.hpp>
|
||||
#include <sprout/iterator/detail/iterator_base.hpp>
|
||||
#include <sprout/utility/swap.hpp>
|
||||
#include <sprout/utility/move.hpp>
|
||||
#include <sprout/type_traits/enabler_if.hpp>
|
||||
|
@ -25,21 +24,31 @@ namespace sprout {
|
|||
//
|
||||
template<typename Iterator>
|
||||
class move_iterator
|
||||
: public std::iterator<
|
||||
typename std::iterator_traits<Iterator>::iterator_category,
|
||||
typename std::iterator_traits<Iterator>::value_type,
|
||||
typename std::iterator_traits<Iterator>::difference_type,
|
||||
typename std::iterator_traits<Iterator>::pointer,
|
||||
typename std::iterator_traits<Iterator>::reference
|
||||
>
|
||||
: public sprout::detail::iterator_base<
|
||||
Iterator,
|
||||
sprout::use_default,
|
||||
sprout::use_default,
|
||||
sprout::use_default,
|
||||
Iterator,
|
||||
typename iterator_traits<Iterator>::value_type&&
|
||||
>::type
|
||||
{
|
||||
private:
|
||||
typedef typename sprout::detail::iterator_base<
|
||||
Iterator,
|
||||
sprout::use_default,
|
||||
sprout::use_default,
|
||||
sprout::use_default,
|
||||
Iterator,
|
||||
typename iterator_traits<Iterator>::value_type&&
|
||||
>::type base_type;
|
||||
public:
|
||||
typedef Iterator iterator_type;
|
||||
typedef typename std::iterator_traits<iterator_type>::iterator_category iterator_category;
|
||||
typedef typename std::iterator_traits<iterator_type>::value_type value_type;
|
||||
typedef typename std::iterator_traits<iterator_type>::difference_type difference_type;
|
||||
typedef Iterator pointer;
|
||||
typedef value_type&& reference;
|
||||
typedef typename base_type::iterator_category iterator_category;
|
||||
typedef typename base_type::value_type value_type;
|
||||
typedef typename base_type::difference_type difference_type;
|
||||
typedef typename base_type::pointer pointer;
|
||||
typedef typename base_type::reference reference;
|
||||
protected:
|
||||
iterator_type current;
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue