-#include <boost/config.hpp>
-#include <cstddef> // for size_t
-#include <utility> // for std::pair
-
-namespace boost
-{
-
-// next() and prior() template functions -----------------------------------//
-
- // 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);
-
- // Contributed by Dave Abrahams
-
- template <class T>
- T next(T x) { return ++x; }
-
- template <class T>
- T prior(T x) { return --x; }
-
-
-// class noncopyable -------------------------------------------------------//
-
- // Private copy constructor and copy assignment ensure classes derived from
- // class noncopyable cannot be copied.
-
- // Contributed by Dave Abrahams
-
- class noncopyable
- {
- protected:
- noncopyable(){}
- ~noncopyable(){}
- private: // emphasize the following members are private
- noncopyable( const noncopyable& );
- const noncopyable& operator=( const noncopyable& );
- }; // noncopyable
-
-// class tied -------------------------------------------------------//
-
- // A helper for conveniently assigning the two values from a pair
- // into separate variables. The idea for this comes from Jaakko J\84rvi's
- // Binder/Lambda Library.
-
- // Constributed by Jeremy Siek
-
- template <class A, class B>
- class tied {
- public:
- inline tied(A& a, B& b) : _a(a), _b(b) { }
- template <class U, class V>
- inline tied& operator=(const std::pair<U,V>& p) {
- _a = p.first;
- _b = p.second;
- return *this;
- }
- protected:
- A& _a;
- B& _b;
- };
-
- template <class A, class B>
- inline tied<A,B> tie(A& a, B& b) { return tied<A,B>(a, b); }
-
-} // namespace boost
+#include <boost/utility/addressof.hpp>
+#include <boost/utility/base_from_member.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/checked_delete.hpp>
+#include <boost/next_prior.hpp>
+#include <boost/noncopyable.hpp>