Я пытаюсь получить производный класс (обычный шаблон), который имеет переменную типа шаблона, которая имеет в качестве параметра своего шаблона тип базового класса (обычный шаблон, тот же параметр, что и производный класс) (тот, у кого есть переменная). Это делает VС++ невероятно зол на меня, и я неспособен успокоить его ярость. Вот краткий пример:
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, заявив, что ожидает шаблон класса. Теперь я понимаю, почему это может означать, что в шаблонах есть рекурсивный цикл шаблонов, даже если это не так. Как я могу убедить VС++ иначе?