|
C++
C++ Operator Overloading Boilerplate »
|
// Arithmetic
R T::operator +(S b);
R T::operator -(S b);
R T::operator +();
R T::operator -();
R T::operator *(S b);
R T::operator /(S b);
R T::operator %(S b);
R T::operator +=(S b);
R T::operator -=(S b);
R T::operator *=(S b);
R T::operator /=(S b);
R T::operator %=(S b);
// Note: C++ uses the unnamed dummy-parameter int to differentiate between prefix and suffix increment operators.
R T::operator ++();
R T::operator ++(int);
R T::operator --();
R T::operator --(int);
// Comparison
R T::operator ==(S b);
R T::operator !=(S b);
R T::operator >(S b);
R T::operator <(S b);
R T::operator >=(S b);
R T::operator <=(S b);
// Member Access and Functor-behavior
R T::operator [](S b);
T::operator R();
R T::operator *();
R T::operator ->();
R T::operator ->*(S a);
R T::operator ()(S a1, U a2, ...);
R T::operator ,(S b);
// Assignment, reference & copy
R T::operator &();
R T::operator =(S b);
// (De)Allocation
void* T::operator new(size_t x);
void* T::operator new[](size_t x);
void T::operator delete(void* x);
void T::operator delete[](void* x);
// Logic
R T::operator !();
R T::operator &&(S b);
R T::operator ||(S b);
// Bitwise
R T::operator ~();
R T::operator &(S b);
R T::operator |(S b);
R T::operator ^(S b);
R T::operator <<(S b);
R T::operator >>(S b);
R T::operator &=(S b);
R T::operator |=(S b);
R T::operator ^=(S b);
R T::operator <<=(S b);
R T::operator >>=(S b); |
|
Algorithms
C Function to wrap a value between values M…N »
|
const float MM_Wrap(float inVal, float min, float max)
{
const float range = max - min;
// Optimisations
if (inVal >= min) {
if (inVal <= max) return inVal; // within range
else if (inVal < max + range) return inVal - range; // within one range above
} else if (inVal >= min - range) return inVal + range; // within one range below
// General case
return fmod(inVal - min, range) + min;
} |