the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at master 59 lines 2.0 kB view raw
1// iterator.hpp workarounds for non-conforming standard libraries ---------// 2 3// (C) Copyright Beman Dawes 2000. Distributed under the Boost 4// Software License, Version 1.0. (See accompanying file 5// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 7// See http://www.boost.org/libs/utility for documentation. 8 9// Revision History 10// 12 Jan 01 added <cstddef> for std::ptrdiff_t (Jens Maurer) 11// 28 Jun 00 Workarounds to deal with known MSVC bugs (David Abrahams) 12// 26 Jun 00 Initial version (Jeremy Siek) 13 14#ifndef BOOST_ITERATOR_HPP 15#define BOOST_ITERATOR_HPP 16 17#include <iterator> 18#include <cstddef> // std::ptrdiff_t 19#include <boost/config.hpp> 20 21namespace boost 22{ 23# if defined(BOOST_NO_STD_ITERATOR) && !defined(BOOST_MSVC_STD_ITERATOR) 24 template <class Category, class T, 25 class Distance = std::ptrdiff_t, 26 class Pointer = T*, class Reference = T&> 27 struct iterator 28 { 29 typedef T value_type; 30 typedef Distance difference_type; 31 typedef Pointer pointer; 32 typedef Reference reference; 33 typedef Category iterator_category; 34 }; 35# else 36 37 // declare iterator_base in namespace detail to work around MSVC bugs which 38 // prevent derivation from an identically-named class in a different namespace. 39 namespace detail { 40 template <class Category, class T, class Distance, class Pointer, class Reference> 41# if !defined(BOOST_MSVC_STD_ITERATOR) 42 struct iterator_base : std::iterator<Category, T, Distance, Pointer, Reference> {}; 43# else 44 struct iterator_base : std::iterator<Category, T, Distance> 45 { 46 typedef Reference reference; 47 typedef Pointer pointer; 48 typedef Distance difference_type; 49 }; 50# endif 51 } 52 53 template <class Category, class T, class Distance = std::ptrdiff_t, 54 class Pointer = T*, class Reference = T&> 55 struct iterator : boost::detail::iterator_base<Category, T, Distance, Pointer, Reference> {}; 56# endif 57} // namespace boost 58 59#endif // BOOST_ITERATOR_HPP