【发布时间】:2021-07-10 20:52:42
【问题描述】:
我有一个模板类,它的基类也是一个模板参数化的模板,其中一个外部模板类型参数的类型成员。示例:
template <typename X>
class Adapter : public Generator<typename X::generated_type>{
using G = typename X::generated_type;
};
这里的X 是具有成员generated_type 的某种类型,我们希望将Generator 子类化为X::generated_type。因为X::generated_type是一个从属名,所以我们在基类名中使用的时候要加上typename前缀。
在Adapter的其余定义中,我可以用G代替typename X::generated_type,这样显然方便很多。
有没有办法在基类的名称中也使用G?
在实际代码中并没有这么简单;我试图将示例提炼为核心问题。
我唯一能想到的是将G 作为模板参数并创建一个将X::generated_type 作为G 传递的包装器。
【问题讨论】: