|
Возведение в степень:
template<class T> inline
T _pow2 ( const T & i )
{
return i * i;
}
template<class T> inline
T _pow3 ( const T & i )
{
return i * i * i;
}
template<class T> inline
T _pow4 ( const T & i )
{
return _pow2 ( i * i );
}
template<class T> inline
T _pow5 ( const T & i )
{
return _pow2 ( i * i ) * i;
}
template<class T> inline
T _pow6 ( const T & i )
{
return _pow3 ( i * i );
}
template<class T> inline
T _pow7 ( const T & i )
{
return _pow3 ( i * i ) * i;
}
template<class T> inline
T _pow8 ( const T & i )
{
return _pow4 ( i * i );
}
template<class T> inline
T _pow9 ( const T & i )
{
return _pow3 ( i * i * i );
}
template<class T> inline
T _pow10 ( const T & i )
{
return _pow5 ( i * i );
}
Обмен местами:
template<class T> inline
void _swap ( T & i1, T & i2 )
{
const T i ( i1 );
i1 = i2;
i2 = i;
}
Минимум и максимум двух элементов:
template<class T> inline
const T & _min ( const T & i1, const T & i2 )
{
return i1 < i2 ? i1 : i2;
}
template<class T> inline
const T & _max ( const T & i1, const T & i2 )
{
return i1 > i2 ? i1 : i2;
}
Минимум и максимум трёх элементов:
template<class T> inline
const T & _min ( const T & i1, const T & i2, const T & i3 )
{
return i1 < i2 ? i1 < i3 ? i1 : i3 : i3 < i2 ? i3 : i2;
}
template<class T> inline
const T & _max ( const T & i1, const T & i2, const T & i3 )
{
return i1 > i2 ? i1 > i3 ? i1 : i3 : i3 > i2 ? i3 : i2;
}
Минимум и максимум четырёх элементов:
template<class T> inline
const T & _min ( const T & i1, const T & i2, const T & i3, const T & i4 )
{
return _min ( i1, _min ( i2, i3, i4 ) );
}
template<class T> inline
const T & _max ( const T & i1, const T & i2, const T & i3, const T & i4 )
{
return _max ( i1, _max ( i2, i3, i4 ) );
}
Минимум и максимум пяти элементов:
template<class T> inline
const T & _min ( const T & i1, const T & i2, const T & i3, const T & i4, const T & i5 )
{
return _min ( i1, _min ( i2, i3, i4, i5 ) );
}
template<class T> inline
const T & _max ( const T & i1, const T & i2, const T & i3, const T & i4, const T & i5 )
{
return _max ( i1, _max ( i2, i3, i4, i5 ) );
}
Исходники находятся в файле Template.h. Наверх |