【问题标题】:Type of variable declared with decltype (having function as an expression)用 decltype 声明的变量类型(具有作为表达式的函数)
【发布时间】:2016-02-18 21:30:40
【问题描述】:

我现在正在阅读 Stephen Prata 的 C++ Primer,当我阅读有关 decltype 的内容时,我有点困惑。在段落的第一部分他写道:

如果表达式是一个函数调用,那么 var 的类型就是 函数返回类型

然后举个例子

long indeed(int);
decltype (indeed(3)) m; // m is type int

这不是一个错误吗?我的逻辑是indeed 函数的返回类型是longm 应该有long 类型。如果我是对的,段落第一部分或第二部分(示例)的错误在哪里?

【问题讨论】:

  • 注意:Stephen Prata 编写了 C++ Primer Plus,而不是 C++ Primer。两者很容易混淆,上次我听说,质量等级的两端有点不同。现在可能已经改变了。

标签: c++ decltype


【解决方案1】:

这绝对是错误的例子。 m 的类型为 long

【讨论】:

    【解决方案2】:

    确实是个错误。

    在给定的示例中,m 将输入 long

    【讨论】:

      猜你喜欢
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多