c++ - 在模板化基类中访问模板参数的别名(typedef,使用)?
问题描述
我有以下抽象基类
template<typename T>
struct Base {
virtual return_type_defined_in_T inheritMe() = 0;
};
我希望这个基类的继承者定义自己return_type
的,如下所示
struct Derived : Base<Derived> {
using return_type = double;
return_type inheritMe() override {
return 6.0f;
}
};
我试图将其定义Base<T>
如下,但它不起作用
template<typename T>
struct Base {
virtual typename T::template return_type inheritMe() = 0;
^^^^^^ here I get the following error
'return_type': is not a member of 'Derived'
};
任何帮助表示赞赏!
解决方案
推荐阅读
- c# - 如何根据值选择 ItemTemplate?
- swift - 何时调用 CellForRowAt?-- 排队等到 VC 位居榜首?
- c++ - 是否可以在 WatchOS / WatchKit 应用程序中使用 C++ 代码
- python - 上传文件后返回对象ID
- python - 当轮班是动态的并且每个员工都有不同的约束时,如何按周添加员工约束?
- python - 如何去除重复的新行?
- sql - 如果子查询返回任何结果,如何返回布尔值
- amazon-web-services - AWS S3 对象是否支持 POSIX 硬链接?
- javascript - 几十年来如何使用javascript函数dateFormat?
- java - 为什么弹簧方法注入在 Kotlin 中不起作用?