2014-01-24 4 views
3

Титлен в значительной степени говорит все, если я пишу;Параметры шаблона шаблона, почему класс вынужден?

         vvvvv 
template <template <typename, typename> class StdContainer, typename T> 
class DerivedContainer: public StdContainer<T, std::allocator<T>> 
{ /*...*/ }; 

Почему требуется ключевое слово класса? То есть, когда имя типа разрешено, в качестве замены во всех других контекстах шаблонов. Disambiguation? Также в какой части стандарта это говорится?

Примечание; Я не берусь из std-контейнеров, это просто пример.

+2

Дубликат [C++ различие ключевых слов «typename» и «class» в шаблонах] (https://stackoverflow.com/questions/2023977/c-difference-of-keywords-typename-and-class кол-шаблоны)? 'template