我遇到了以下代码:
#include <iostream>
class test {
public:
template <typename T>
void echo(T a){
std::cout << a << std::endl;
}
};
template <typename T>
void print(T in){
test* t = new test();
t->template echo<T>(in);
}
int main(){
print(6);
return 0;
}
以上代码将按预期输出6
。我不明白的是这部分:
t->template echo<T>(in);
因为更改为以下内容,它也可以正常工作:
t->echo(in);
此功能叫什么?在哪里使用?