用decltype声明的变量类型(具有作为表达式的函数)

时间:2016-02-18 21:30:41

标签: c++ decltype

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

  

如果expression是函数调用,则var具有类型   函数返回类型

然后给出一个例子

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

这不是一个错误吗?我的逻辑说,indeed函数的返回类型为long,而m的类型为long。如果我是对的,段落的第一部分或第二部分(例子)中的错误在哪里?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

确实,这是一个错误。

在给定示例中,m将为long类型。