diff options
Diffstat (limited to 'src/third_party/boost-1.56.0/boost/range/detail/range_return.hpp')
-rw-r--r-- | src/third_party/boost-1.56.0/boost/range/detail/range_return.hpp | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/src/third_party/boost-1.56.0/boost/range/detail/range_return.hpp b/src/third_party/boost-1.56.0/boost/range/detail/range_return.hpp deleted file mode 100644 index 773a72a8bfa..00000000000 --- a/src/third_party/boost-1.56.0/boost/range/detail/range_return.hpp +++ /dev/null @@ -1,180 +0,0 @@ -// Copyright Neil Groves 2009. Use, modification and -// distribution is subject to 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_RANGE_RETURN_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_RANGE_RETURN_HPP_INCLUDED - -#include <boost/range/begin.hpp> -#include <boost/range/end.hpp> -#include <boost/range/iterator_range.hpp> - -namespace boost -{ - enum range_return_value - { - // (*) indicates the most common values - return_found, // only the found resulting iterator (*) - return_next, // next(found) iterator - return_prior, // prior(found) iterator - return_begin_found, // [begin, found) range (*) - return_begin_next, // [begin, next(found)) range - return_begin_prior, // [begin, prior(found)) range - return_found_end, // [found, end) range (*) - return_next_end, // [next(found), end) range - return_prior_end, // [prior(found), end) range - return_begin_end // [begin, end) range - }; - - template< class SinglePassRange, range_return_value > - struct range_return - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type found, - SinglePassRange& rng) - { - return type(found, boost::end(rng)); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_found > - { - typedef BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type type; - - static type pack(type found, SinglePassRange&) - { - return found; - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_next > - { - typedef BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type type; - - static type pack(type found, SinglePassRange& rng) - { - return found == boost::end(rng) - ? found - : boost::next(found); - } - }; - - template< class BidirectionalRange > - struct range_return< BidirectionalRange, return_prior > - { - typedef BOOST_DEDUCED_TYPENAME range_iterator<BidirectionalRange>::type type; - - static type pack(type found, BidirectionalRange& rng) - { - return found == boost::begin(rng) - ? found - : boost::prior(found); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_begin_found > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type found, - SinglePassRange& rng) - { - return type(boost::begin(rng), found); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_begin_next > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type found, - SinglePassRange& rng) - { - return type( boost::begin(rng), - found == boost::end(rng) ? found : boost::next(found) ); - } - }; - - template< class BidirectionalRange > - struct range_return< BidirectionalRange, return_begin_prior > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator<BidirectionalRange>::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator<BidirectionalRange>::type found, - BidirectionalRange& rng) - { - return type( boost::begin(rng), - found == boost::begin(rng) ? found : boost::prior(found) ); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_found_end > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type found, - SinglePassRange& rng) - { - return type(found, boost::end(rng)); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_next_end > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type found, - SinglePassRange& rng) - { - return type( found == boost::end(rng) ? found : boost::next(found), - boost::end(rng) ); - } - }; - - template< class BidirectionalRange > - struct range_return< BidirectionalRange, return_prior_end > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator<BidirectionalRange>::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator<BidirectionalRange>::type found, - BidirectionalRange& rng) - { - return type( found == boost::begin(rng) ? found : boost::prior(found), - boost::end(rng) ); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_begin_end > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type, - SinglePassRange& rng) - { - return type(boost::begin(rng), boost::end(rng)); - } - }; - -} - -#endif // include guard |