Мне было интересно, можно ли каким-либо образом написать шаблонную функцию в абстрактном классе и создать ее экземпляр (функцию шаблона) автоматически с типом производного класса?
Итак, у вас естькласс, который выглядит примерно так:
class A
{
virtual template < typename T>
void vtfunc(void)
};
class B : public A
{
/// No declared members pertaining to this example
}
Затем, когда объявляется класс, производный от A, он компилирует "vtfunc" с собой в качестве параметра шаблона T. Затем, вызывая vtfunc () через интерфейс Aвызывает isntance этой функции, скомпилированной для ее производного класса B.
Есть ли способ сделать это или написать что-то неуместное, имеющее этот эффект?
Очевидно, я знаю, что параметр шаблонаможет влиять только на внутренние компоненты класса, а не на тип и параметры возвращаемого значения - они должны быть одинаковыми из-за того, как работает полиморфизм.