代码之家  ›  专栏  ›  技术社区  ›  pasha

为什么不能合并模板及其模板成员的模板参数列表?

  •  2
  • pasha  · 技术社区  · 7 年前

    我正在阅读“StruouStruts的C++编程语言”,并提到

    template<class T>
      template<class T2> Ptr<T>::operator Ptr<T2> () { return Ptr<T2>(p); }
    
    template<class T, class T2> // error
      Ptr<T>::operator Ptr<T2> () { return Ptr<T2>(p); }
    

    我不明白为什么不允许,有人能解释为什么不允许吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   PlinyTheElder    7 年前

    我认为这完全合乎逻辑。如果按照您建议的方式进行,那么阅读您的代码的程序员可能会认为只有一个模板类有两个参数,而他是错的。