嵌套模板函数具有自己的模板参数

时间:2017-07-19 21:42:41

标签: c++ templates inheritance variadic

假设我有一个具有一些模板化参数的类,以及一个可以访问其中每个参数的函数,例如

template <typename... Types>
class Foo
{
public:
    template <typename Type>
    Type& get() { return std::get<Type>(member_tuple); }

protected:
    std::tuple<Types...> member_tuple;
};

我想使用这个类作为基类,并专门化子类中的get()函数来做某些事情......特别......但不是那么专业,只能定义任何模板参数然而。也许是这样的:

template <typename... Types>
class Bar
    : public Foo<Types...>
{
public:
    template <typename Type>
    Type& special_get() 
    {
        // do your special thing in here somewhere.
        return Foo<Types...>::get<Type>(this->member_tuple); 
    }
};

然而,这是一个编译器错误:它抱怨它预期 return Foo<Types...>::get(this->member_tuple)

为了让我更加困惑,如果我省略了<Type>参数,然后尝试调用该函数,我会得到一个“无法推断模板参数'Type'”错误。

如何将附加模板参数传递给包装的基类函数?

0 个答案:

没有答案