【问题标题】:Is unsigned int a `simple-type-specifier`是 unsigned int 一个“简单类型说明符”
【发布时间】:2017-05-25 19:52:21
【问题描述】:

我问这个的原因是,尽管Table 11 的标题是simple-type-specifiers 和它们指定的类型,但语法产生式simple-type-specifier 没有' t 提及这种类型的组合,作为 simple-type-specifier。那么unsigned int 是简单类型说明符吗?

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

【问题讨论】:

标签: c++ types language-lawyer


【解决方案1】:

不,unsigned int 不是简单类型说明符。如果你读过preceding paragraph,你有

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

强调我的

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

【讨论】:

  • 我不得不撤回对您的回答的接受,因为我坚信unsigned int 是一个简单类型说明符。再次查看我上面的编辑。
  • @Alexander 第一段清楚地列出了 C++ 中存在的所有简单类型说明符。 unsigned int 不在其中。
  • 我得到了我正在寻找的答案here。谢谢。
猜你喜欢
  • 2012-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
  • 2015-05-02
  • 1970-01-01
  • 2018-06-28
  • 2012-04-08
相关资源
最近更新 更多