Skip to content

Commit

Permalink
Add operator<.
Browse files Browse the repository at this point in the history
  • Loading branch information
ElectricMagic committed Sep 5, 2014
1 parent c882e61 commit 9995272
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions zoolib/ZMulti_T.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define __ZMulti_T_h__ 1
#include "zconfig.h"

#include "zoolib/ZUtil_Relops.h"

namespace ZooLib {

// =================================================================================================
Expand All @@ -40,6 +42,17 @@ class ZMulti_T1
T0 f0;
};

template <class T0>
bool operator<(const ZMulti_T1<T0>& iL, const ZMulti_T1<T0>& iR)
{
if (iL.f0 < iR.f0)
return true;
return false;
}

template <class T0>
class RelopsTraits_HasLT<ZMulti_T1<T0> > : public RelopsTraits_Has {};

template <class T0>
ZMulti_T1<T0> sMulti(const T0& i0)
{ return ZMulti_T1<T0>(i0); }
Expand All @@ -62,6 +75,21 @@ class ZMulti_T2
T1 f1;
};

template <class T0, class T1>
bool operator<(const ZMulti_T2<T0,T1>& iL, const ZMulti_T2<T0,T1>& iR)
{
if (iL.f0 < iR.f0)
return true;
if (iR.f0 < iL.f0)
return false;
if (iL.f1 < iR.f1)
return true;
return false;
}

template <class T0, class T1>
class RelopsTraits_HasLT<ZMulti_T2<T0,T1> > : public RelopsTraits_Has {};

template <class T0, class T1>
ZMulti_T2<T0,T1> sMulti(const T0& i0, const T1& i1)
{ return ZMulti_T2<T0,T1>(i0, i1); }
Expand All @@ -86,6 +114,25 @@ class ZMulti_T3
T2 f2;
};

template <class T0, class T1, class T2>
bool operator<(const ZMulti_T3<T0,T1,T2>& iL, const ZMulti_T3<T0,T1,T2>& iR)
{
if (iL.f0 < iR.f0)
return true;
if (iR.f0 < iL.f0)
return false;
if (iL.f1 < iR.f1)
return true;
if (iR.f1 < iL.f1)
return false;
if (iL.f2 < iR.f2)
return true;
return false;
}

template <class T0, class T1, class T2>
class RelopsTraits_HasLT<ZMulti_T3<T0,T1,T2> > : public RelopsTraits_Has {};

template <class T0, class T1, class T2>
ZMulti_T3<T0,T1,T2> sMulti(const T0& i0, const T1& i1, const T2& i2)
{ return ZMulti_T3<T0,T1,T2>(i0, i1, i2); }
Expand All @@ -112,6 +159,29 @@ class ZMulti_T4
T3 f3;
};

template <class T0, class T1, class T2, class T3>
bool operator<(const ZMulti_T4<T0,T1,T2,T3>& iL, const ZMulti_T4<T0,T1,T2,T3>& iR)
{
if (iL.f0 < iR.f0)
return true;
if (iR.f0 < iL.f0)
return false;
if (iL.f1 < iR.f1)
return true;
if (iR.f1 < iL.f1)
return false;
if (iL.f2 < iR.f2)
return true;
if (iR.f2 < iL.f2)
return false;
if (iL.f3 < iR.f3)
return true;
return false;
}

template <class T0, class T1, class T2, class T3>
class RelopsTraits_HasLT<ZMulti_T4<T0,T1,T2,T3> > : public RelopsTraits_Has {};

template <class T0, class T1, class T2, class T3>
ZMulti_T4<T0,T1,T2,T3> sMulti(const T0& i0, const T1& i1, const T2& i2, const T3& i3)
{ return ZMulti_T4<T0,T1,T2,T3>(i0, i1, i2, i3); }
Expand Down

0 comments on commit 9995272

Please sign in to comment.