提问人:Սոկրատ Գալստյան 提问时间:8/5/2023 更新时间:8/5/2023 访问量:43
如何在子类中使用模板基类的嵌套类型?
How to use nested type of template base class in sub class?
问:
我有这样的代码:
template <typename T>
struct bar
{
typedef T type;
};
template <typename T>
struct sub_bar : bar<T>
{
typename bar<T>::type x;
};
我知道这是推荐的方式,但我想写这样的代码:
template<typename T>
struct sub_bar : bar<T>
{
...
type x;
};
怎么做?我想我可以做这样的事情:
template<typename T>
struct sub_bar : bar<T>
{
typedef typename bar<T>::type type;
type x;
};
什么是类型是模棱两可的吗?但是,此代码适用于 gcc9 编译器。
答:
3赞
Davis Herring
8/5/2023
#1
我倾向于使用强制合格查找和写入的技巧
using typename sub_bar::type;
以避免重复基类的模板参数(并避免在搜索两个类的奇怪情况下出现潜在的歧义),但您编写的内容绝对有效。type
评论