template<typename _Tp1, typename _Tp2>
struct generate_unique<std::pair<_Tp1, _Tp2> >
{
typedef _Tp1 first_type;
typedef _Tp2 second_type;
typedef std::pair<_Tp1, _Tp2> pair_type;
template<typename _Tp1, typename _Tp2>
struct generate_unique<std::pair<_Tp1, _Tp2> >
{
typedef _Tp1 first_type;
typedef _Tp2 second_type;
typedef std::pair<_Tp1, _Tp2> pair_type;