我正在尝试查找有关用作消歧器的模板关键字的任何信息,但对此一无所知。可能我正在搜索错误的关键字,但标准中没有 .template 或 ->template 之类的东西。谷歌只显示来自不同论坛的 GCC 问题,但并没有真正解释它的用途。
像这样的代码在第 11 行(在 GCC 上)没有模板关键字就无法编译,但我不太确定这是否符合标准。
template<typename B>
struct S1
{
template<typename T> void test() {}
};
template<typename T>
struct S2
{
S2()
{
S1<T>().template test<int>();
}
};
int main()
{
S2<int>();
}
所以我的问题是:为什么在这里使用模板关键字,没有那个关键字会有什么样的歧义,我在哪里可以阅读(我真的很感激链接到标准)。
谢谢。