当我显式实例化模板时,如何将 pimpl 用于模板类?
我只需要一个示例代码。
我尝试过的是:
// MyTemplatedClass.h
template< class T >
class MyTemplatedClass
{
private:
class Impl;
Impl* _pimpl;
public:
void PublicMethod();
}
我的实现如下:
// MyTemplatedClass.cpp
template< class T >
class MyTemplatedClass<T>::Impl
{
public:
void PublicMethod();
}
template <class T>
void MyTemplatedClass<T>::Impl::PublicMethod()
{
...
}
转发方法调用到实现类:
template< class T >
void MyTemplatedClass<T>::PublicMethod()
{
_pimpl->PublicMethod();
}
显式实例化:使用 int 和 double 的示例:
template class MyTemplatedClass< int >;
template class MyTemplatedClass< double >;
但这似乎不起作用。