
Определение знака переменной достаточно важная и нужная в геймдеве операция. Есть много разных вариантов отличающиеся производительностью.
Привожу наиболее оптимальное решение, которое мне удалось найти.
template<typename T>
T sign(T val)
{
return (val > (T)0) - (val < (T)0);
}
template<typename T>
T sign(T val)
{
return (val > (T)0) - (val < (T)0);
}
template<typename T> T sign(T val) { return (val > (T)0) - (val < (T)0); }