RedWoft

To be or not to be, it is a question.
Pair

 

template<typename T1, typename T2>
struct Pair
{
    typedef T1 FirstType;
    typedef T2 SecondType;

    Pair():m_First(T1()),m_Second(T2()){}
    Pair(
const T1& p_First, const T2& p_Second):m_First(p_First),m_Second(p_Second){}
    template
<typename T3, typename T4> Pair(const T3& p_First, const T4& p_Second):m_First(p_First),m_Second(p_Second){}

    T1 m_First;
    T2 m_Second;
};
template
<class T1, class T2>
inline 
bool operator==(const Pair<T1, T2>& lsh, const Pair<T1, T2>& rhs)

    
return (lsh.first == rhs.first && lsh.second == rhs.second); 
}
template
<class T1, class T2>
inline 
bool operator<(const Pair<T1, T2>& lsh, const Pair<T1, T2>& rhs)

    
return (lsh.m_First < rhs.m_First || (!(rhs.m_First < lsh.m_First) && lsh.m_Second < rhs.m_Second)); 
}
template
<class T1, class T2>
inline 
const Pair<T1, T2> MakePair(const T1& p_First, const T2& p_Second)
{
    
return Pair<T1, T2>(p_First, p_Second);
}

 

 

posted on 2010-06-17 16:46  RedWoft  阅读(226)  评论(0)    收藏  举报