����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
include
/
boost
/
spirit
/
home
/
support
/
iterators
/
Filename :
look_ahead.hpp
back
Copy
// Copyright (c) 2001, Daniel C. Nuffer // Copyright (c) 2001-2011 Hartmut Kaiser // http://spirit.sourceforge.net/ // // 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) #if !defined(BOOST_SPIRIT_ITERATOR_LOOK_AHEAD_MAR_16_2007_1253PM) #define BOOST_SPIRIT_ITERATOR_LOOK_AHEAD_MAR_16_2007_1253PM #include <boost/spirit/home/support/iterators/detail/first_owner_policy.hpp> #include <boost/spirit/home/support/iterators/detail/no_check_policy.hpp> #include <boost/spirit/home/support/iterators/detail/input_iterator_policy.hpp> #include <boost/spirit/home/support/iterators/detail/fixed_size_queue_policy.hpp> #include <boost/spirit/home/support/iterators/detail/combine_policies.hpp> #include <boost/spirit/home/support/iterators/multi_pass.hpp> namespace boost { namespace spirit { /////////////////////////////////////////////////////////////////////////// // this could be a template typedef, since such a thing doesn't // exist in C++, we'll use inheritance to accomplish the same thing. /////////////////////////////////////////////////////////////////////////// template <typename T, std::size_t N> class look_ahead : public multi_pass<T , iterator_policies::default_policy< iterator_policies::first_owner , iterator_policies::no_check , iterator_policies::input_iterator , iterator_policies::fixed_size_queue<N> > > { private: typedef multi_pass<T , iterator_policies::default_policy< iterator_policies::first_owner , iterator_policies::no_check , iterator_policies::input_iterator , iterator_policies::fixed_size_queue<N> > > base_type; public: look_ahead() : base_type() {} explicit look_ahead(T x) : base_type(x) {} look_ahead(look_ahead const& x) : base_type(x) {} #if BOOST_WORKAROUND(__GLIBCPP__, == 20020514) look_ahead(int) // workaround for a bug in the library : base_type() {} // shipped with gcc 3.1 #endif // BOOST_WORKAROUND(__GLIBCPP__, == 20020514) look_ahead operator= (base_type const& rhs) { this->base_type::operator=(rhs); return *this; } // default generated operators destructor and assignment operator are ok. }; }} #endif