歧义语法如何解决?

时间:2018-07-25 12:13:12

标签: c++ c++14 language-lawyer

关于如何解决歧义语法是否有一般规则?

尤其是pseudo-destructor-name包含这些生产规则

  

嵌套名称说明符 opt 类型名称::〜类型名称

     

嵌套名称说明符 opt 〜类型名称

nested-name-specifier包括

  

嵌套名称说明标识符::

     

类型名称::

给出以下内容

struct A
{
    struct B {};
    B b;
};

A a;
a.b.A::B::~B();

最后一行选择了以下哪个产品?

  

类型名称::类型名称::〜类型名称

     

类型名称::标识符::〜类型名称

这在模板化上下文中具有重要意义,因为[temp.res]

  

在立即包含依赖于模板参数的嵌套名称说明符的嵌套名称说明符中,隐式假定标识符或simple-template-id命名类型,而无需使用typename关键字。

0 个答案:

没有答案