В настоящее время я должен оптимизировать код от другого программиста. Он оставил мне множество шаблонных классов, и я хотел бы использовать функции из IPP-библиотеки Intel для ускорения вычислений. Проблема в том, что в большинстве случаев эти функции требуют, чтобы вы знали, какие типы данных вы используете. Поэтому я хотел бы переписать шаблон, чтобы в случае оптимизации операции он использовал специализированный код. В случае, если это не может, он должен вернуться к исходному коду.
Проблема в том, что мне нужно проверить, используется ли определенный тип данных, и я не знаю, как это сделать.
Пример. Я хотел бы сделать что-то вроде этого:
template < class Elem > class Array1D
{
Array1D<Elem>& operator += (const Elem& a)
{
if (typeof(Elem) == uchar)
{
// use special IPP operation here
}
else
{
// fall back to default behaviour
}
}
Есть идеи, как это сделать? Желательно без помощи других библиотек.
Спасибо