首先,我希望问题标题有某种意义。
我有以下类结构:
class A : public Singleton<A>
{
public:
template <typename T> class Buffer
{
public:
//ctor & dtor
T* get() { return ptr; }
private:
T* ptr;
};
// class A stuff
};
此类应作为模板参数传递给处理程序类,并在类的模板函数中使用:
template <class MODEL> class Handler
{
public:
// ctor & dtor
template <typename T> typename MODEL::Buffer<T>* create(...) // error c2988
{ // create a buffer }
};
但是,编译器无法确定正确的类型名并抛出错误 C2988:无法识别的模板声明/定义(VS 2012 中的 vc++ Nov 2012 CTP 编译器)。我找不到任何解决方案来告诉编译器如何处理内部类模板。所以问题是:如何做到这一点?
任何帮助将不胜感激。