【发布时间】:2011-05-03 21:21:09
【问题描述】:
我正在尝试查找有关用作消歧器的模板关键字的任何信息,但没有任何相关信息。可能我正在搜索错误的关键字,但标准中没有 .template 或 ->template 之类的东西。 Google 仅显示来自不同论坛的 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>();
}
所以我的问题是:为什么在这里使用模板关键字,没有该关键字会有什么样的歧义,我在哪里可以阅读(我非常感谢链接到标准)。
谢谢。
【问题讨论】:
-
@Prasoon:我知道有很多问题在哪里使用
template-keyword 是答案,但我找不到任何直接询问的问题。 -
@Space_C0wb0y :对不起,我删除了我之前的评论。