iterator_traits.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 93 行

HPP
93
字号
// Copyright David Abrahams 2003.// 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)#ifndef ITERATOR_TRAITS_DWA200347_HPP# define ITERATOR_TRAITS_DWA200347_HPP# include <boost/detail/iterator.hpp># include <boost/detail/workaround.hpp>namespace boost { // Unfortunately, g++ 2.95.x chokes when we define a class template// iterator_category which has the same name as its// std::iterator_category() function, probably due in part to the// "std:: is visible globally" hack it uses.  Use// BOOST_ITERATOR_CATEGORY to write code that's portable to older// GCCs.# if BOOST_WORKAROUND(__GNUC__, <= 2)#  define BOOST_ITERATOR_CATEGORY iterator_category_# else#  define BOOST_ITERATOR_CATEGORY iterator_category# endiftemplate <class Iterator>struct iterator_value{    typedef typename detail::iterator_traits<Iterator>::value_type type;};  template <class Iterator>struct iterator_reference{    typedef typename detail::iterator_traits<Iterator>::reference type;};    template <class Iterator>struct iterator_pointer{    typedef typename detail::iterator_traits<Iterator>::pointer type;};  template <class Iterator>struct iterator_difference{    typedef typename detail::iterator_traits<Iterator>::difference_type type;};template <class Iterator>struct BOOST_ITERATOR_CATEGORY{    typedef typename detail::iterator_traits<Iterator>::iterator_category type;};# if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)template <>struct iterator_value<int>{    typedef void type;};  template <>struct iterator_reference<int>{    typedef void type;};template <>struct iterator_pointer<int>{    typedef void type;};  template <>struct iterator_difference<int>{    typedef void type;};  template <>struct BOOST_ITERATOR_CATEGORY<int>{    typedef void type;};# endif} // namespace boost::iterator#endif // ITERATOR_TRAITS_DWA200347_HPP

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?