/////////////////////////////////////////////////////////////////////////// // FILE: utility (Utility templates) // // ========================================================================= // // Open Watcom Project // // Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. // // This file is automatically generated. Do not edit directly. // // ========================================================================= // // Description: This header is part of the C++ standard library. It // defines a few useful helper templates that don't fit // well in any of the other headers. /////////////////////////////////////////////////////////////////////////// #ifndef _UTILITY_INCLUDED #define _UTILITY_INCLUDED #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #ifndef __cplusplus #error This header file requires C++ #endif namespace std { namespace rel_ops { template< class Type > bool operator!=( const Type &x, const Type &y ) { return( !( x == y ) ); } template< class Type > bool operator>( const Type &x, const Type &y ) { return( y < x ); } template< class Type > bool operator<=( const Type &x, const Type &y ) { return( !( y < x ) ); } template< class Type > bool operator>=( const Type &x, const Type &y ) { return( !( x < y ) ); } } // namespace rel_ops // Pair support template< class Type1, class Type2 > struct pair { typedef Type1 first_type; typedef Type2 second_type; Type1 first; Type2 second; pair( ) : first( Type1( ) ), second( Type2( ) ) { } pair( const Type1 &x, const Type2 &y ) : first( x ), second( y ) { } template< class OtherType1, class OtherType2 > pair( const pair< OtherType1, OtherType2 > &other ) : first( other.first ), second( other.second ) { } }; template< class Type1, class Type2 > inline bool operator==( const pair< Type1, Type2 > &x, const pair< Type1, Type2 > &y ) { return( x.first == y.first && x.second == y.second ); } template< class Type1, class Type2 > inline bool operator<( const pair< Type1, Type2 > &x, const pair< Type1, Type2 > &y ) { return( x.first < y.first || ( !( y.first < x.first ) && x.second < y.second ) ); } template< class Type1, class Type2 > inline pair< Type1, Type2 > make_pair( const Type1 &x, const Type2 &y ) { return( pair< Type1, Type2 >( x, y ) ); } } // namespace std #endif