| 
| template<typename O , typename S , typename C >  | 
| bool  | utility::keys::operator== (UserKey< O, S, C > const &a, UserKey< O, S, C > const &b) | 
|   | UserKey == UserKey.  More...
  | 
|   | 
| template<typename O , typename S , typename C >  | 
| bool  | utility::keys::operator!= (UserKey< O, S, C > const &a, UserKey< O, S, C > const &b) | 
|   | UserKey != UserKey.  More...
  | 
|   | 
| template<typename O , typename S , typename C >  | 
| bool  | utility::keys::operator< (UserKey< O, S, C > const &a, UserKey< O, S, C > const &b) | 
|   | UserKey < UserKey.  More...
  | 
|   | 
| template<typename O , typename S , typename C >  | 
| bool  | utility::keys::operator<= (UserKey< O, S, C > const &a, UserKey< O, S, C > const &b) | 
|   | UserKey <= UserKey.  More...
  | 
|   | 
| template<typename O , typename S , typename C >  | 
| bool  | utility::keys::operator>= (UserKey< O, S, C > const &a, UserKey< O, S, C > const &b) | 
|   | UserKey >= UserKey.  More...
  | 
|   | 
| template<typename O , typename S , typename C >  | 
| bool  | utility::keys::operator> (UserKey< O, S, C > const &a, UserKey< O, S, C > const &b) | 
|   | UserKey > UserKey.  More...
  | 
|   | 
| template<typename O , typename S , typename C >  | 
| bool  | utility::keys::sequential (UserKey< O, S, C > const &a, UserKey< O, S, C > const &b) | 
|   | UserKeys are sequential?  More...
  | 
|   | 
User-created hidden index key abstract base class. 
- Author
 - Stuart G. Mentzer (Stuar.nosp@m.t_Me.nosp@m.ntzer.nosp@m.@obj.nosp@m.exx.c.nosp@m.om)
 
- Note
 
- Object (O) parameter: The type of object being keyed 
 
- Super (S) parameter: The super Key class (== or derived from Key) 
 
- Client (C) parameter: The client (user) of these keys 
 
- There is a distinct Key type for each Object+Super+Client combination 
 
- Hidden index can be set at construction if needed