home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 January / PCWorld_2000-01_cd.bin / Software / Servis / Devc / _SETUP.4 / Group3 / stl_pair.h < prev    next >
C/C++ Source or Header  |  1998-03-08  |  2KB  |  74 lines

  1. /*
  2.  *
  3.  * Copyright (c) 1994
  4.  * Hewlett-Packard Company
  5.  *
  6.  * Permission to use, copy, modify, distribute and sell this software
  7.  * and its documentation for any purpose is hereby granted without fee,
  8.  * provided that the above copyright notice appear in all copies and
  9.  * that both that copyright notice and this permission notice appear
  10.  * in supporting documentation.  Hewlett-Packard Company makes no
  11.  * representations about the suitability of this software for any
  12.  * purpose.  It is provided "as is" without express or implied warranty.
  13.  *
  14.  *
  15.  * Copyright (c) 1996,1997
  16.  * Silicon Graphics Computer Systems, Inc.
  17.  *
  18.  * Permission to use, copy, modify, distribute and sell this software
  19.  * and its documentation for any purpose is hereby granted without fee,
  20.  * provided that the above copyright notice appear in all copies and
  21.  * that both that copyright notice and this permission notice appear
  22.  * in supporting documentation.  Silicon Graphics makes no
  23.  * representations about the suitability of this software for any
  24.  * purpose.  It is provided "as is" without express or implied warranty.
  25.  */
  26.  
  27. /* NOTE: This is an internal header file, included by other STL headers.
  28.  *   You should not attempt to use it directly.
  29.  */
  30.  
  31. #ifndef __SGI_STL_INTERNAL_PAIR_H
  32. #define __SGI_STL_INTERNAL_PAIR_H
  33.  
  34. __STL_BEGIN_NAMESPACE
  35.  
  36. template <class T1, class T2>
  37. struct pair {
  38.   typedef T1 first_type;
  39.   typedef T2 second_type;
  40.  
  41.   T1 first;
  42.   T2 second;
  43.   pair() : first(T1()), second(T2()) {}
  44.   pair(const T1& a, const T2& b) : first(a), second(b) {}
  45.  
  46. #ifdef __STL_MEMBER_TEMPLATES
  47.   template <class U1, class U2>
  48.   pair(const pair<U1, U2>& p) : first(p.first), second(p.second) {}
  49. #endif
  50. };
  51.  
  52. template <class T1, class T2>
  53. inline bool operator==(const pair<T1, T2>& x, const pair<T1, T2>& y) { 
  54.   return x.first == y.first && x.second == y.second; 
  55. }
  56.  
  57. template <class T1, class T2>
  58. inline bool operator<(const pair<T1, T2>& x, const pair<T1, T2>& y) { 
  59.   return x.first < y.first || (!(y.first < x.first) && x.second < y.second); 
  60. }
  61.  
  62. template <class T1, class T2>
  63. inline pair<T1, T2> make_pair(const T1& x, const T2& y) {
  64.   return pair<T1, T2>(x, y);
  65. }
  66.  
  67. __STL_END_NAMESPACE
  68.  
  69. #endif /* __SGI_STL_INTERNAL_PAIR_H */
  70.  
  71. // Local Variables:
  72. // mode:C++
  73. // End:
  74.