You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//  iterator.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
 |