Титлен в значительной степени говорит все, если я пишу;Параметры шаблона шаблона, почему класс вынужден?
vvvvv
template <template <typename, typename> class StdContainer, typename T>
class DerivedContainer: public StdContainer<T, std::allocator<T>>
{ /*...*/ };
Почему требуется ключевое слово класса? То есть, когда имя типа разрешено, в качестве замены во всех других контекстах шаблонов. Disambiguation? Также в какой части стандарта это говорится?
Примечание; Я не берусь из std-контейнеров, это просто пример.
Дубликат [C++ различие ключевых слов «typename» и «class» в шаблонах] (https://stackoverflow.com/questions/2023977/c-difference-of-keywords-typename-and-class кол-шаблоны)? 'template class Container, typename Тип> При указании шаблона шаблона ключевое слово класса ДОЛЖНО использоваться, как указано выше, в этом случае оно не является взаимозаменяемым с typename.' –
Не обман, это вопрос признает разницу и требует обоснования. – jrok
@jrok Да, ответ на самом деле не объясняет, почему это требуется. –