/*
 * 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_OSTREAM_H
#define _STLP_OSTREAM_H

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

#include <stl/_ioserr.h>

#include <ostream>

#ifdef _STLP_USE_NAMESPACES
#  include <using/ostream>
#endif

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

#endif /* _STLP_OSTREAM_H */
