/*
 * Copyright (c) 1997
 * Silicon Graphics Computer Systems, Inc.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  Silicon Graphics makes no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied warranty.
 */

#ifndef _STLP_ROPE
#define _STLP_ROPE

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

#ifdef _STLP_PRAGMA_ONCE
#  pragma once
#endif

#if defined (_STLP_NO_EXTENSIONS)
/* Comment following if you want to use rope class even if you ask for
 * no extension.
 */
#  error The rope class is a STLport extension.
#endif

#include <stl/_rope.h>

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

#endif /* _STLP_ROPE */

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