diff DEPENDENCIES/generic/include/boost/move/iterator.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
line wrap: on
line diff
--- a/DEPENDENCIES/generic/include/boost/move/iterator.hpp	Fri Sep 04 12:01:02 2015 +0100
+++ b/DEPENDENCIES/generic/include/boost/move/iterator.hpp	Mon Sep 07 11:12:49 2015 +0100
@@ -14,9 +14,17 @@
 #ifndef BOOST_MOVE_ITERATOR_HPP
 #define BOOST_MOVE_ITERATOR_HPP
 
+#ifndef BOOST_CONFIG_HPP
+#  include <boost/config.hpp>
+#endif
+#
+#if defined(BOOST_HAS_PRAGMA_ONCE)
+#  pragma once
+#endif
+
 #include <boost/move/detail/config_begin.hpp>
-#include <boost/move/utility.hpp>
-#include <iterator>  //std::iterator
+#include <boost/move/detail/iterator_traits.hpp>
+#include <boost/move/utility_core.hpp>
 
 namespace boost {
 
@@ -36,7 +44,7 @@
 {
    public:
    typedef It                                                              iterator_type;
-   typedef typename std::iterator_traits<iterator_type>::value_type        value_type;
+   typedef typename boost::movelib::iterator_traits<iterator_type>::value_type        value_type;
    #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_MOVE_DOXYGEN_INVOKED)
    typedef value_type &&                                                   reference;
    #else
@@ -46,8 +54,8 @@
       , value_type & >::type                                               reference;
    #endif
    typedef It                                                              pointer;
-   typedef typename std::iterator_traits<iterator_type>::difference_type   difference_type;
-   typedef typename std::iterator_traits<iterator_type>::iterator_category iterator_category;
+   typedef typename boost::movelib::iterator_traits<iterator_type>::difference_type   difference_type;
+   typedef typename boost::movelib::iterator_traits<iterator_type>::iterator_category iterator_category;
 
    move_iterator()
    {}
@@ -142,14 +150,14 @@
 
 template <class I>
 struct is_move_iterator
-   : public ::boost::move_detail::integral_constant<bool, false>
 {
+   static const bool value = false;
 };
 
 template <class I>
 struct is_move_iterator< ::boost::move_iterator<I> >
-   : public ::boost::move_detail::integral_constant<bool, true>
 {
+   static const bool value = true;
 };
 
 }  //namespace move_detail {
@@ -177,14 +185,16 @@
 //! back of a container
 template <typename C> // C models Container
 class back_move_insert_iterator
-   : public std::iterator<std::output_iterator_tag, void, void, void, void>
 {
    C* container_m;
 
    public:
-   typedef C                        container_type;
-   typedef typename C::value_type   value_type;
-   typedef typename C::reference    reference;
+   typedef C                           container_type;
+   typedef typename C::value_type      value_type;
+   typedef typename C::reference       reference;
+   typedef typename C::pointer         pointer;
+   typedef typename C::difference_type difference_type;
+   typedef std::output_iterator_tag    iterator_category;
 
    explicit back_move_insert_iterator(C& x) : container_m(&x) { }
 
@@ -217,14 +227,16 @@
 //! front of a container
 template <typename C> // C models Container
 class front_move_insert_iterator
-   : public std::iterator<std::output_iterator_tag, void, void, void, void>
 {
    C* container_m;
 
 public:
-   typedef C                        container_type;
-   typedef typename C::value_type   value_type;
-   typedef typename C::reference    reference;
+   typedef C                           container_type;
+   typedef typename C::value_type      value_type;
+   typedef typename C::reference       reference;
+   typedef typename C::pointer         pointer;
+   typedef typename C::difference_type difference_type;
+   typedef std::output_iterator_tag    iterator_category;
 
    explicit front_move_insert_iterator(C& x) : container_m(&x) { }
 
@@ -254,15 +266,17 @@
 //////////////////////////////////////////////////////////////////////////////
 template <typename C> // C models Container
 class move_insert_iterator
-   : public std::iterator<std::output_iterator_tag, void, void, void, void>
 {
    C* container_m;
    typename C::iterator pos_;
 
    public:
-   typedef C                        container_type;
-   typedef typename C::value_type   value_type;
-   typedef typename C::reference    reference;
+   typedef C                           container_type;
+   typedef typename C::value_type      value_type;
+   typedef typename C::reference       reference;
+   typedef typename C::pointer         pointer;
+   typedef typename C::difference_type difference_type;
+   typedef std::output_iterator_tag    iterator_category;
 
    explicit move_insert_iterator(C& x, typename C::iterator pos)
       : container_m(&x), pos_(pos)