我试图创建一个派生类(普通模板),它有一个模板类型的变量,该模板类型以其模板类参数为基类(普通模板,与派生类具有相同的参数)的类型。但是VC++对此感到非常愤怒,而且我无法平息它的怒火。以下是一个快速示例:
template<template<typename VT> class CT, typename VT> struct encapThing {};
template<typename VT> struct innocuousBase {};
template<typename VT> struct derivOfDoom : public innocuousBase<VT>
{
encapThing<innocuousBase, VT> ohgodhelp; //C3200
};
它将抛出C3200错误,表示它期望一个类模板。我可以看出为什么会这样想,即使这实际上并不是递归循环的模板内嵌模板。我该如何说服VC++呢?