template<typename> 模板 <typename> 有什么作用?

Ada*_*ski 3 c++ templates

最近我偶然发现了这样一段代码:

template <typename Ta> template <typename Tb>
void SomeClass<Ta>::Function() {}
Run Code Online (Sandbox Code Playgroud)

有模板函数,但它有奇怪的语法,我不太明白。它有什么作用?它在附近template<template<typename Ta>>吗?

我从来没有遇到过这样的语法,我很困惑。

for*_*818 11

有时它只需要一个完整的例子:

template <typename Ta>
struct SomeClass {
    template <typename Tb>
    void Function();
};


template <typename Ta> template <typename Tb>
void SomeClass<Ta>::Function() {}

int main() {
    SomeClass<int> sc;
    sc.Function<double>();
}
Run Code Online (Sandbox Code Playgroud)

它是类模板的方法模板的定义。