175 lines
2.4 KiB
C
175 lines
2.4 KiB
C
//Operator Overloads
|
|
T operator()()
|
|
{
|
|
return *value;
|
|
}
|
|
//Assignment Operators
|
|
T operator=(T nVal)
|
|
{
|
|
(*value) = nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator+=(T nVal)
|
|
{
|
|
(*value) += nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator-=(T nVal)
|
|
{
|
|
(*value)-= nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator/=(T nVal)
|
|
{
|
|
(*value) /= nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator*=(T nVal)
|
|
{
|
|
(*value) *= nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator%=(T nVal)
|
|
{
|
|
(*value) %= nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator^=(T nVal)
|
|
{
|
|
(*value) ^= nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator&=(T nVal)
|
|
{
|
|
(*value) &= nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator|=(T nVal)
|
|
{
|
|
(*value) |= nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator>>=(T nVal)
|
|
{
|
|
(*value) >>= nVal;
|
|
return *value;
|
|
}
|
|
|
|
T operator<<=(T nVal)
|
|
{
|
|
(*value) <<= nVal;
|
|
return *value;
|
|
}
|
|
|
|
|
|
//Mathematical Operations
|
|
T operator+(T nVal)
|
|
{
|
|
return (*value) + nVal;
|
|
}
|
|
|
|
T operator-(T nVal)
|
|
{
|
|
return (*value) - nVal;
|
|
}
|
|
|
|
T operator*(T nVal)
|
|
{
|
|
return (*value) - nVal;
|
|
}
|
|
|
|
T operator/(T nVal)
|
|
{
|
|
return (*value) / nVal;
|
|
}
|
|
|
|
T operator%(T nVal)
|
|
{
|
|
return (*value) % nVal;
|
|
}
|
|
|
|
//Boolean operations
|
|
bool operator==(T nVal)
|
|
{
|
|
return (*value) == nVal;
|
|
}
|
|
|
|
bool operator!=(T nVal)
|
|
{
|
|
return (*value) != nVal;
|
|
}
|
|
|
|
bool operator<(T nVal)
|
|
{
|
|
return (*value) < nVal;
|
|
}
|
|
|
|
bool operator<=(T nVal)
|
|
{
|
|
return (*value) <= nVal;
|
|
}
|
|
|
|
bool operator>(T nVal)
|
|
{
|
|
return (*value) > nVal;
|
|
}
|
|
|
|
bool operator>=(T nVal)
|
|
{
|
|
return (*value) >= nVal;
|
|
}
|
|
|
|
T operator&&(T nVal)
|
|
{
|
|
return (*value) && nVal;
|
|
}
|
|
|
|
T operator||(T nVal)
|
|
{
|
|
return (*value) && nVal;
|
|
}
|
|
|
|
T operator!()
|
|
{
|
|
return !(*value);
|
|
}
|
|
|
|
//Bitwise operations
|
|
T operator&(T nVal)
|
|
{
|
|
return (*value) && nVal;
|
|
}
|
|
|
|
T operator|(T nVal)
|
|
{
|
|
return (*value) && nVal;
|
|
}
|
|
|
|
T operator>>(T nVal)
|
|
{
|
|
return (*value) >> nVal;
|
|
}
|
|
|
|
T operator<<(T nVal)
|
|
{
|
|
return (*value) << nVal;
|
|
}
|
|
|
|
T operator^(T nVal)
|
|
{
|
|
return (*value) ^ nVal;
|
|
}
|
|
|
|
T operator~()
|
|
{
|
|
return ~(*value);
|
|
} |