【问题标题】:How to instantiate and rename a template class如何实例化和重命名模板类
【发布时间】:2022-08-19 19:18:58
【问题描述】:

描述

我声明了一个模板类

template <typename T,size_t RootNum>
class Tree;

我想专门化另一个模板类 BinaryTree,其 RootNum 为 2,但每个成员都与类 Tree 相同。
一个不雅的方法是定义一个类 BinaryTree 继承类 Tree 如下

template <typename T>
class BinaryTree: public Tree<T,2>{};

但我依稀记得它存在一个类似于这种风格的声明来“优雅地”专门化一个模板类:

template <typename T>
typedef Tree<T,2> BinaryTree;

实际上上面的代码是无效的。我想知道是否有类似关键字来简洁地实现此操作。

谢谢你的好意建议。

    标签: c++


    【解决方案1】:

    您正在寻找别名模板:

    template <typename T>
    using BinaryTree = Tree<T,2>;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      相关资源
      最近更新 更多