Доброго времени суток.
Есть некоторое количество чужого кода, доставшегося по наследству. В нём 100500 функций, имеющие общий вид типа
int MegaClass::f0(void)
{
XXX1 *t_data = reinterpret_cast<XXX1 *>(input.data());
тут делаем определенные операции с этим t_data и возвращаем результат
return t_data->res;
}
int MegaClass::f1(void)
{
XXX2 *t_data = reinterpret_cast<XXX2 *>(input.data());
тут делаем определенные операции с этим t_data и возвращаем результат
return t_data->res;
}
...
int MegaClass::f100(void)
{
XXX101 *t_data = reinterpret_cast<XXX101 *>(input.data());
тут делаем определенные операции с этим t_data и возвращаем результат
return t_data->res;
}
где XXX* - это union, а input - QByteArray
решил сделать шаблон, чтобы хотя бы укоротить код
template<typename T>
int MegaClass::template_f(T qq)
{
qq *t_data = reinterpret_cast<qq *>(input.data());
тут делаем определенные операции с этим t_data и возвращаем результат
return t_data->res;
}
и получил ошибку: error: ‘t_data’ was not declared in this scope
Как такой шаблон правильно написать?
Эмоции за сам подобный код прошу оставить в стороне, вопрос не про это.