QVM: Quaternions, Vectors, Matrices
Scalar Requirements
Действительный скалярный типSдолжен иметь доступный деструктор, конструктор по умолчанию, конструктор копий и оператор присваивания и должен поддерживать следующие операции:
S operator*( S, S );
S operator/( S, S );
S operator+( S, S );
S operator-( S, S );
S & operator*=( S &, S );
S & operator/=( S &, S );
S & operator+=( S &, S );
S & operator-=( S &, S );
bool operator==( S, S );
bool operator!=( S, S );
Кроме того, выражениеS(0)должно строить скаляр нулевого значения, аS(1)должно строить скаляр значения один - или -скалярные черты.Шаблон должен быть соответствующим образом специализированным.