//////////////////////////////////////////////////////////////////////////////
//
// (C) Copyright David Abrahams, Vicente Botet 2009.
// (C) Copyright Ion Gaztanaga 2009-2012.
// 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/move for documentation.
//
//////////////////////////////////////////////////////////////////////////////

//! \file move.hpp
//! A general library header that includes
//! the rest of top-level headers.

#ifndef BOOST_MOVE_MOVE_HPP
#define BOOST_MOVE_MOVE_HPP

#include <ndnboost/move/detail/config_begin.hpp>
#include <ndnboost/move/utility.hpp>
#include <ndnboost/move/iterator.hpp>
#include <ndnboost/move/traits.hpp>
#include <ndnboost/move/algorithm.hpp>
#include <ndnboost/move/detail/config_end.hpp>

#endif //#ifndef BOOST_MOVE_MOVE_HPP
