在使用using
模板化基类从基类访问 a 时,如果没有其他问题,我遇到了冗长的问题。在下面的代码中,派生类尝试使用my_type
其基类中的 。
template <typename T>
class Base {
public:
using mytype = T;
};
template <typename T>
class Derived : public Base<T>{
public:
// using the base's mytype here
static typename Base<T>::mytype func() { return 0;}
};
然而,在实践中,我发现这是一个非常多的字符,因为它看起来应该更简单。如果 Base 类没有被模板化,那么它就不需要 the<T>
或 typename (显然)。
在我真正的问题中,我有很多从基础派生的类,如果可能的话,我想简化它。我现在拥有的就像下一个示例一样,我只是添加了一个附加using
功能以从基类中获取类型,但感觉就像是我不需要的额外层。
template <typename T>
class Derived : public Base<T>{
public:
using base_type = typename Base<T>::mytype;
static base_type func() { return 0;}
};
这似乎是一个愚蠢的问题,但是mytype
在派生类中使用基类的次数使得它在前一种情况下非常可怕。是否有正确的方法从保持可读性的模板化库中获取类型?