Implemented operator overloads for Reflection

This commit is contained in:
Vulpovile
2023-11-05 00:37:25 -07:00
parent 901539e594
commit cab66d1152
8 changed files with 273 additions and 59 deletions

View File

@@ -0,0 +1,175 @@
//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);
}