c++: шаблонный член класса в обычном классе

У меня есть некоторый шаблонный класс CExtractor<IExtractorData>, экземпляр которого я хочу передавать в качестве параметра другому классу CProgressManager, при этом данный класс будет работать с методами шаблонного класса и напрямую и явно никак с IExtractorData контактировать не будет.

Делаю следующим образом:

class CProgressManager
{
private:
    template <class IExtractorData>
    CExtractor<IExtractorData>* m_extractor;

public:
    template <class IExtractorData>
    CProgressManager(CExtractor<IExtractorData>* extractor);
};

template <class IExtractorData>
CProgressManager::CProgressManager(
    CExtractor<IExtractorData>* extractor
)
{
    m_extractor = extractor;
}

и получаю ошибку на строчке

CExtractor<IExtractorData>* m_extractor;

(active) E0786 member "CProgressManager::m_extractor" is not a valid class member template Error C3376 'CProgressManager::m_extractor': only static data member templates are allowed

подскажите как выйти из данной ситуации, чтобы не делать CProgressManager шаблонным и в явном виде при создании экземпляра данного класса не указывать какие именно данные IExtractorData будут использовать?


Ответы (0 шт):