# 1
Один из способов - ввести typedef в myclass
.
template<class T, class P>
class myclass
{
public:
typedef T typeT;
typedef P typeP;
};
и обращаться к ним как
template<class MyClass>
void otherfunc(MyClass const &mc)
{
typename MyClass::typeT myMember;
}
# 2
Другой способ - использовать decltype
.Скорее всего, вам не нужно буквально использовать параметры шаблона, но вы намерены использовать тот же тип, что и элемент, или возвращаемое значение элемента myclass
.Итак, как то так:
template<class T, class P>
struct myclass
{
T memberT;
P memberP;
};
template<class MyClass>
void otherfunc(MyClass const &mc)
{
using T = decltype(MyClass::memberT);
using P = decltype(MyClass::memberP);
T var1;
P var2;
}