unsigned int是一个`simple-type-specifier`

时间:2017-05-25 19:52:21

标签: c++ types language-lawyer

我之所以这样问是因为,尽管Table 11的标题是简单类型说明符及其指定的类型,但语法生成{ {3}}没有提及这种类型的组合,作为简单类型说明符。那么unsigned int是一个简单类型说明符吗?

修改我不认为给simple-type-specifier的答案是正确的。如果这是真的,那么就不能说void* operator new(std::size_t);声明size_taforementioned question中定义的声明,因为typedef是{{1} }(在我的系统中)定义为unsigned int。为了显示这个断言,即void* operator new(std::size_t);声明,我几乎可以肯定我们需要unsigned int 的事实简单型说明符 我错了。如果我们使用[dcl.dcl]/1 中给出的 type-name 的定义,那么void* operator new(std::size_t);声明是没有问题的。我认为我第一次是对的,除了错误的例子。也就是说,我认为unsigned int 必须 [dcl.type.simple]/1 ,否则我无法说void f(unsigned int);是一个simple-type-specifier

1 个答案:

答案 0 :(得分:5)

不,unsigned int不是简单类型说明符。如果您阅读了preceding paragraph,那么

  

表11总结了简单类型说明符的有效组合及其指定的类型。

强调我的

因此,虽然unsignedint都列在paragraph 1中作为简单类型说明符,但两者的组合不是,但它是有效的类型。