diff options
| author | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) | 
| commit | f53a1ef582494458301b97bf6e546be52d7ff7e8 (patch) | |
| tree | 7571b5cbcbd8a8f1dd1c966c9045b6cb69f0e295 /3rdParty/Boost/src/boost/iterator.hpp | |
| parent | 638345680d72ca6acaf123f2c8c1c391f696e371 (diff) | |
| download | swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.zip swift-contrib-f53a1ef582494458301b97bf6e546be52d7ff7e8.tar.bz2  | |
Moving submodule contents back.
Diffstat (limited to '3rdParty/Boost/src/boost/iterator.hpp')
| -rw-r--r-- | 3rdParty/Boost/src/boost/iterator.hpp | 59 | 
1 files changed, 59 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/iterator.hpp b/3rdParty/Boost/src/boost/iterator.hpp new file mode 100644 index 0000000..a43cfe1 --- /dev/null +++ b/3rdParty/Boost/src/boost/iterator.hpp @@ -0,0 +1,59 @@ +//  interator.hpp workarounds for non-conforming standard libraries  ---------// + +//  (C) Copyright Beman Dawes 2000. Distributed under the Boost +//  Software License, Version 1.0. (See accompanying file +//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +//  See http://www.boost.org/libs/utility for documentation. + +//  Revision History +//  12 Jan 01 added <cstddef> for std::ptrdiff_t (Jens Maurer) +//  28 Jun 00 Workarounds to deal with known MSVC bugs (David Abrahams) +//  26 Jun 00 Initial version (Jeremy Siek) + +#ifndef BOOST_ITERATOR_HPP +#define BOOST_ITERATOR_HPP + +#include <iterator> +#include <cstddef>           // std::ptrdiff_t +#include <boost/config.hpp> + +namespace boost +{ +# if defined(BOOST_NO_STD_ITERATOR) && !defined(BOOST_MSVC_STD_ITERATOR) +  template <class Category, class T, +    class Distance = std::ptrdiff_t, +    class Pointer = T*, class Reference = T&> +  struct iterator +  { +    typedef T         value_type; +    typedef Distance  difference_type; +    typedef Pointer   pointer; +    typedef Reference reference; +    typedef Category  iterator_category; +  }; +# else + +  // declare iterator_base in namespace detail to work around MSVC bugs which +  // prevent derivation from an identically-named class in a different namespace. +  namespace detail { +   template <class Category, class T, class Distance, class Pointer, class Reference> +#  if !defined(BOOST_MSVC_STD_ITERATOR) +   struct iterator_base : std::iterator<Category, T, Distance, Pointer, Reference> {}; +#  else +   struct iterator_base : std::iterator<Category, T, Distance> +   { +     typedef Reference reference; +     typedef Pointer pointer; +     typedef Distance difference_type; +   }; +#  endif +  } + +  template <class Category, class T, class Distance = std::ptrdiff_t, +            class Pointer = T*, class Reference = T&> +  struct iterator : boost::detail::iterator_base<Category, T, Distance, Pointer, Reference> {}; +# endif +} // namespace boost + +#endif // BOOST_ITERATOR_HPP  | 
 Swift