Files
Blocks3D/src/include/Reflection/ReflectionProperty_op_overload.h
2023-11-05 00:37:25 -07:00

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);
}