annotate DEPENDENCIES/generic/include/boost/spirit/home/support/iterators/istream_iterator.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 // Copyright (c) 2001-2011 Hartmut Kaiser
Chris@16 2 //
Chris@16 3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 5
Chris@16 6 #if !defined(BOOST_SPIRIT_ISTREAM_ITERATOR_JAN_03_2010_0522PM)
Chris@16 7 #define BOOST_SPIRIT_ISTREAM_ITERATOR_JAN_03_2010_0522PM
Chris@16 8
Chris@16 9 #include <boost/spirit/home/support/iterators/detail/ref_counted_policy.hpp>
Chris@16 10 #if defined(BOOST_SPIRIT_DEBUG)
Chris@16 11 #include <boost/spirit/home/support/iterators/detail/buf_id_check_policy.hpp>
Chris@16 12 #else
Chris@16 13 #include <boost/spirit/home/support/iterators/detail/no_check_policy.hpp>
Chris@16 14 #endif
Chris@16 15 #include <boost/spirit/home/support/iterators/detail/istream_policy.hpp>
Chris@16 16 #include <boost/spirit/home/support/iterators/detail/split_std_deque_policy.hpp>
Chris@16 17 #include <boost/spirit/home/support/iterators/detail/combine_policies.hpp>
Chris@16 18 #include <boost/spirit/home/support/iterators/multi_pass.hpp>
Chris@16 19
Chris@16 20 namespace boost { namespace spirit
Chris@16 21 {
Chris@16 22 ///////////////////////////////////////////////////////////////////////////
Chris@16 23 template <typename Elem, typename Traits = std::char_traits<Elem> >
Chris@16 24 class basic_istream_iterator :
Chris@16 25 public multi_pass<
Chris@16 26 std::basic_istream<Elem, Traits>
Chris@16 27 , iterator_policies::default_policy<
Chris@16 28 iterator_policies::ref_counted
Chris@16 29 #if defined(BOOST_SPIRIT_DEBUG)
Chris@16 30 , iterator_policies::buf_id_check
Chris@16 31 #else
Chris@16 32 , iterator_policies::no_check
Chris@16 33 #endif
Chris@16 34 , iterator_policies::istream
Chris@16 35 , iterator_policies::split_std_deque>
Chris@16 36 >
Chris@16 37 {
Chris@16 38 private:
Chris@16 39 typedef multi_pass<
Chris@16 40 std::basic_istream<Elem, Traits>
Chris@16 41 , iterator_policies::default_policy<
Chris@16 42 iterator_policies::ref_counted
Chris@16 43 #if defined(BOOST_SPIRIT_DEBUG)
Chris@16 44 , iterator_policies::buf_id_check
Chris@16 45 #else
Chris@16 46 , iterator_policies::no_check
Chris@16 47 #endif
Chris@16 48 , iterator_policies::istream
Chris@16 49 , iterator_policies::split_std_deque>
Chris@16 50 > base_type;
Chris@16 51
Chris@16 52 public:
Chris@16 53 basic_istream_iterator()
Chris@16 54 : base_type() {}
Chris@16 55
Chris@16 56 explicit basic_istream_iterator(std::basic_istream<Elem, Traits>& x)
Chris@16 57 : base_type(x) {}
Chris@16 58
Chris@16 59 basic_istream_iterator(basic_istream_iterator const& x)
Chris@16 60 : base_type(x) {}
Chris@16 61
Chris@16 62 #if BOOST_WORKAROUND(__GLIBCPP__, == 20020514)
Chris@16 63 basic_istream_iterator(int) // workaround for a bug in the library
Chris@16 64 : base_type() {} // shipped with gcc 3.1
Chris@16 65 #endif // BOOST_WORKAROUND(__GLIBCPP__, == 20020514)
Chris@16 66
Chris@16 67 basic_istream_iterator operator= (base_type const& rhs)
Chris@16 68 {
Chris@16 69 this->base_type::operator=(rhs);
Chris@16 70 return *this;
Chris@16 71 }
Chris@16 72
Chris@16 73 // default generated operators, destructor and assignment operator are ok.
Chris@16 74 };
Chris@16 75
Chris@16 76 typedef basic_istream_iterator<char> istream_iterator;
Chris@16 77
Chris@16 78 }}
Chris@16 79
Chris@16 80 #endif