以下C++ 11转换单元格式正确吗?
typedef int T;
::T i;
如果是这样,它似乎与标准语法不匹配。
simple-type-specifier
应该匹配::T
,但是语法是:simple-type-specifier:
nested-name-specifier_opt type-name
并且
nested-name-specifier
不能单独匹配::
,因此simple-type-specifier
不能匹配::T
。这是标准缺陷吗?
最佳答案
这是规格缺陷。它已在最新草案N3691(PDF)中修复,其中嵌套名称说明符为:
nested-name-specifier:
::
type-name ::
namespace-name ::
decltype-specifier ::
nested-name-specifier identifier ::
nested-name-specifier templateopt simple-template-id ::
(在C++ 11中,缺少第一个生成的嵌套名称说明符->
::
。)