关于如何解决歧义语法是否有一般规则?
尤其是pseudo-destructor-name包含这些生产规则
嵌套名称说明符 opt 类型名称::〜类型名称
嵌套名称说明符 opt 〜类型名称
嵌套名称说明标识符::
类型名称::
给出以下内容
struct A
{
struct B {};
B b;
};
A a;
a.b.A::B::~B();
最后一行选择了以下哪个产品?
类型名称::类型名称::〜类型名称
类型名称::标识符::〜类型名称
这在模板化上下文中具有重要意义,因为[temp.res]
在立即包含依赖于模板参数的嵌套名称说明符的嵌套名称说明符中,隐式假定标识符或simple-template-id命名类型,而无需使用typename关键字。