home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / stlpt453.zip / STLport-4.5.3 / stlport / stl / wrappers / _list.h < prev    next >
C/C++ Source or Header  |  2001-11-14  |  2KB  |  87 lines

  1. /*
  2.  *
  3.  * Copyright (c) 1994
  4.  * Hewlett-Packard Company
  5.  *
  6.  * Copyright (c) 1996,1997
  7.  * Silicon Graphics Computer Systems, Inc.
  8.  *
  9.  * Copyright (c) 1997
  10.  * Moscow Center for SPARC Technology
  11.  *
  12.  * Copyright (c) 1999 
  13.  * Boris Fomitchev
  14.  *
  15.  * This material is provided "as is", with absolutely no warranty expressed
  16.  * or implied. Any use is at your own risk.
  17.  *
  18.  * Permission to use or copy this software for any purpose is hereby granted 
  19.  * without fee, provided the above notices are retained on all copies.
  20.  * Permission to modify the code and to distribute modified code is granted,
  21.  * provided the above notices are retained, and a notice that the code was
  22.  * modified is included with the above copyright notice.
  23.  *
  24.  */
  25.  
  26. /* NOTE: This is an internal header file, included by other STL headers.
  27.  *   You should not attempt to use it directly.
  28.  */
  29.  
  30. #ifndef _STLP_INTERNAL_WRAP_LIST_H
  31. #define _STLP_INTERNAL_WRAP_LIST_H
  32.  
  33. #ifndef _STLP_INTERNAL_LIST_H
  34. # include <stl/_list.h>
  35. #endif
  36.  
  37. # ifdef _STLP_USE_NAMESPACES
  38. namespace STLPORT { 
  39. # endif
  40.  
  41. # if defined (_STLP_DEBUG)
  42. #  define __LIST_SUPER _DBG_list<_Tp, _STLP_DEFAULT_ALLOCATOR(_Tp) >
  43. # else
  44. #  define __LIST_SUPER __list__<_Tp, _STLP_DEFAULT_ALLOCATOR(_Tp) >
  45. # endif
  46.  
  47.  
  48. // provide a "default" list adaptor
  49. template <class _Tp>
  50. class list : public __LIST_SUPER
  51. {
  52. public:
  53.     typedef __LIST_SUPER _Super;
  54.     __IMPORT_WITH_REVERSE_ITERATORS(_Super)
  55.     __IMPORT_SUPER_COPY_ASSIGNMENT(list, list<_Tp>, __LIST_SUPER)
  56.     list() { }
  57.     explicit list(size_type __n, const _Tp& __value) : __LIST_SUPER(__n, __value) { }
  58.     explicit list(size_type __n) :  __LIST_SUPER(__n) { } 
  59.     list(const _Tp* __first, const _Tp* __last) : __LIST_SUPER(__first, __last) { } 
  60.     list(const_iterator __first, const_iterator __last) : __LIST_SUPER(__first, __last) { }
  61. # undef __LIST_SUPER
  62. };
  63.  
  64. #  if defined (_STLP_BASE_MATCH_BUG)
  65. template <class _Tp>
  66. inline bool operator==(const list<_Tp>& __x, const list<_Tp>& __y) {
  67.     typedef typename list<_Tp>::_Super _Super;
  68.     return operator == ((const _Super&)__x,(const _Super&)__y);
  69. }
  70.  
  71. template <class _Tp>
  72. inline bool operator<(const list<_Tp>& __x, const list<_Tp>& __y) {
  73.   return lexicographical_compare(__x.begin(), __x.end(),
  74.                                  __y.begin(), __y.end());
  75. }
  76. #  endif
  77.  
  78. # ifdef _STLP_USE_NAMESPACES
  79. } /* namespace STLPORT */
  80. # endif
  81.  
  82. #endif /* _STLP_INTERNAL_LIST_H */
  83.  
  84. // Local Variables:
  85. // mode:C++
  86. // End:
  87.