//////////////////////////////////////////////////////////////////////////////
//
// (C) Copyright Ion Gaztanaga 2005-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/container for documentation.
//
//////////////////////////////////////////////////////////////////////////////
#if defined BOOST_MSVC
   #pragma warning (pop)
   #ifdef BOOST_CONTAINER_DETAIL_CRT_SECURE_NO_DEPRECATE
   #undef BOOST_CONTAINER_DETAIL_CRT_SECURE_NO_DEPRECATE
   #undef _CRT_SECURE_NO_DEPRECATE
   #endif
#endif

