如果我寫的話,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