diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-12-15 11:30:44 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-12-15 23:05:24 +0900 |
commit | 4bd4ac21f11fdb5b76ffda985397398102a81e9b (patch) | |
tree | 61b0afd406a0d7554ed4fa85413a53c63f3e2324 /indexlib/boost-compat/next_prior.h | |
parent | 53a24d5c1f80c64dbd28825b546748a3ae36049e (diff) | |
download | tdepim-4bd4ac21f11fdb5b76ffda985397398102a81e9b.tar.gz tdepim-4bd4ac21f11fdb5b76ffda985397398102a81e9b.zip |
Renaming of files in preparation for code style tools.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 3a75bdfe83b71ef1dbc2fbf52f2d18b8174e22e5)
Diffstat (limited to 'indexlib/boost-compat/next_prior.h')
-rw-r--r-- | indexlib/boost-compat/next_prior.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/indexlib/boost-compat/next_prior.h b/indexlib/boost-compat/next_prior.h new file mode 100644 index 000000000..cdacf29c7 --- /dev/null +++ b/indexlib/boost-compat/next_prior.h @@ -0,0 +1,51 @@ +// Boost next_prior.h header file ---------------------------------------// + +// (C) Copyright Dave Abrahams and Daniel Walker 1999-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) + +// See http://www.boost.org/libs/utility for documentation. + +// Revision History +// 13 Dec 2003 Added next(x, n) and prior(x, n) (Daniel Walker) + +#ifndef BOOST_NEXT_PRIOR_H_INCLUDED +#define BOOST_NEXT_PRIOR_H_INCLUDED + +#include <iterator> + +namespace boost { + +// Helper functions for classes like bidirectional iterators not supporting +// operator+ and operator- +// +// Usage: +// const std::list<T>::iterator p = get_some_iterator(); +// const std::list<T>::iterator prev = boost::prior(p); +// const std::list<T>::iterator next = boost::next(prev, 2); + +// Contributed by Dave Abrahams + +template <class T> +inline T next(T x) { return ++x; } + +template <class T, class Distance> +inline T next(T x, Distance n) +{ + std::advance(x, n); + return x; +} + +template <class T> +inline T prior(T x) { return --x; } + +template <class T, class Distance> +inline T prior(T x, Distance n) +{ + std::advance(x, -n); + return x; +} + +} // namespace boost + +#endif // BOOST_NEXT_PRIOR_H_INCLUDED |