首页 > 解决方案 > 在模板化基类中访问模板参数的别名(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++templates

解决方案


推荐阅读