Има 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 указателя, сочещи към getters.
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 представлява основни типове данни... Възможно ли е да се приложи този код без специализация (т.е. указатели към членове на шаблон на клас) или тези „указатели“ трябва да бъдат специализирани? Благодаря за всякакви примери...