#ifndef TINYSTL_UTILITY
#define TINYSTL_UTILITY

namespace std {
  
  template <class T1, class T2>
  class pair
  {
  public:
    typedef T1 first_type;
    typedef T2 second_type;
    
    T1 first;
    T2 second;
    
    pair()
      : first(T1()), second(T2()) {
    }
    
    pair(const T1& a, const T2& b)
      : first(a), second(b) {
    }
    
    template <class U, class V>
    pair(const pair<U, V>& p)
      : first(p.first), second(p.second) {
    }
    
  };
  
  // TODO: compare
  
  template<class T1, class T2>
  inline pair<T1, T2> make_pair(T1 x, T2 y) {
    return pair<T1, T2> (x, y);
  }
  
}

#endif
