如果我写的话,titlen几乎全是说的;模板模板参数,为什么class被强制?
vvvvv
template <template <typename, typename> class StdContainer, typename T>
class DerivedContainer: public StdContainer<T, std::allocator<T>>
{ /*...*/ };
为什么需要class关键字?那就是当typename被允许时,作为所有其他模板上下文的替代品。消除歧义?标准的哪个部分说明了这一点?
注意;我不是从std容器派生的,这只是一个例子。
复制[模板中的关键字'typename'和'类'的C++差异](https://stackoverflow.com/questions/2023977/c-difference-of-keywords-typename-and-class -in模板)? 'template class Container,typename Type> 当指定一个模板模板时,必须使用class关键字 - 在这种情况下,它不能与typename互换。“ – 2014-01-24 13:39:23
不是一个笨蛋,这个问题意识到差异并要求理由。 – jrok
@jrok是的,答案并不能解释为什么它是必需的。 – 2014-01-24 13:43:40