/*
 * Copyright (c) 1999 
 * Boris Fomitchev
 *
 * This material is provided "as is", with absolutely no warranty expressed
 * or implied. Any use is at your own risk.
 *
 * Permission to use or copy this software for any purpose is hereby granted 
 * without fee, provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 *
 */

#ifndef _STLP_NEW_HEADER
# define _STLP_NEW_HEADER

# ifndef _STLP_OUTERMOST_HEADER_ID
#  define _STLP_OUTERMOST_HEADER_ID 0x447
#  include <stl/_prolog.h>
# endif

#ifndef _STLP_CSTDDEF
// size_t
# include <cstddef>
#endif

#if defined (__BORLANDC__) && (__BORLANDC__ > 0x520)
// new.h uses ::malloc ;(
# include <cstdlib>
using _STLP_VENDOR_CSTD::malloc;
#endif

# if !defined (_STLP_NO_NEW_NEW_HEADER)
#  ifdef _STLP_BROKEN_BAD_ALLOC_CLASS
#   define bad_alloc _STLP_NULLIFIED_BROKEN_BAD_ALLOC_CLASS
#   define nothrow_t _STLP_NULLIFIED_BROKEN_BAD_NOTHROW_T_CLASS
#   define nothrow _STLP_NULLIFIED_BROKEN_BAD_NOTHROW
#  endif

// eMbedded Visual C++ .NET unfortunately uses _INC_NEW for both <new.h> and <new>
// we undefine the symbol to get the stuff in the SDK's <new>
#  if defined(_STLP_WCE_NET) && defined(_INC_NEW)
#   undef _INC_NEW
#  endif

#  include _STLP_NATIVE_CPP_RUNTIME_HEADER(new)
#  ifdef _STLP_BROKEN_BAD_ALLOC_CLASS
#   undef bad_alloc
#   undef nothrow_t
#   undef nothrow
#   undef _STLP_NULLIFIED_BROKEN_BAD_ALLOC_CLASS
#   undef _STLP_NULLIFIED_BROKEN_BAD_NOTHROW_T_CLASS
#   undef _STLP_NULLIFIED_BROKEN_BAD_NOTHROW
#  endif
# else
#  include  <new.h>
# endif

#ifndef _STLP_NEW_H_HEADER
# include <stl/_new.h>
#endif

# if (_STLP_OUTERMOST_HEADER_ID == 0x447)
#  include <stl/_epilog.h>
#  undef _STLP_OUTERMOST_HEADER_ID
# endif

#endif /* _STLP_NEW */

// Local Variables:
// mode:C++
// End:
