使用decltype声明的变量类型(函数作为表达式) 我现在正在读Stephen Prata的C++入门书,我读到有关DeCyType的文章时,我有点困惑。在该段的第一部分,他写道:

使用decltype声明的变量类型(函数作为表达式) 我现在正在读Stephen Prata的C++入门书,我读到有关DeCyType的文章时,我有点困惑。在该段的第一部分,他写道:,c++,decltype,C++,Decltype,如果表达式是函数调用,则var的类型为 函数返回类型 然后给出了一个例子 long indeed(int); decltype (indeed(3)) m; // m is type int 这不是个错误吗?我的逻辑是函数的返回类型确实是long,m应该是long类型。如果我是对的,那么段落的第一部分或第二部分(示例)哪里有错误?肯定是示例出错了m将具有类型long它确实是一个错误 在给定的例子中, M< /Cl>将是类型长 .< /P>注释:Stephen Prata写C++ + Plus,

如果表达式是函数调用,则var的类型为 函数返回类型

然后给出了一个例子

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

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

肯定是示例出错了
m
将具有类型
long

它确实是一个错误


在给定的例子中,<代码> M< /Cl>将是类型<代码>长 .< /P>注释:Stephen Prata写C++ + Plus,而不是C++底漆。这两者很容易混淆,上次我听说,它们在质量等级上有点不同。现在可能已经改变了。