Есть 2 класса шаблонов A и B, имеющие 2 закрытых члена a1, a2 и b1, b2.
template <typename T>
class A
{
private:
T a1, a2;
public:
T getA1 () const {return a1;}
T getA2 () const {return a2;}
};
template <typename T>
class B
{
private:
T b1, b2;
public:
T getB1 () const {return b1;}
T getB2 () const {return b2;}
};
В классе Test нужно 2 указателя на геттеры.
class Test
{
private:
template <typename T>
static T ( *getFirst ) ();
template <typename T>
static T ( *getSecond ) ();
}
template <typename T>
T ( * Test::getFirst ) () = &A<T>::getA1; //Pointer to getA1, error
template <typename T>
T ( * Test::getSecond ) () = &B<T>::getB2; //Pointer to getB2, error
int main
{
A <double> a;
B <double> b;
double c = a.getFirst + b.getSecond;
}
T представляет основные типы данных... Возможно ли реализовать этот код без специализации (т.е. указатели на члены шаблона класса) или эти "указатели" должны быть специализированными? Спасибо за любые примеры...