下面的C++11翻译单元是否格式良好?
typedef int T;
::T i;如果是这样的话,它似乎不符合标准语法。
simple-type-specifier应该与::T匹配,但语法是:
simple-type-specifier:
nested-name-specifier_opt type-namenested-name-specifier不能单独与::匹配,因此simple-type-specifier不能与::T匹配。
这是标准缺陷吗?
发布于 2013-08-14 17:13:40
这是一个规范缺陷。它是在最新的草案N3691 (PDF)中修正的,嵌套名称说明符是:
nested-name-specifier:
::
type-name ::
namespace-name ::
decltype-specifier ::
nested-name-specifier identifier ::
nested-name-specifier templateopt simple-template-id ::(在C++11中,缺少嵌套名称说明符-> ::的第一个产品。)
发布于 2013-08-14 17:15:30
因此,除了答案之外,仅作为澄清:::identifier引用全局命名空间中的(限定)标识符。因此,是的,所讨论的代码实际上是格式良好的.
https://stackoverflow.com/questions/18237947
复制相似问题