【发布时间】:2016-10-15 19:43:47
【问题描述】:
我收到错误“Expected '(' for function-style cast or type construction”,并已尽我所能在线研究此错误的含义,但无法找到任何文档说明导致此错误的原因错误。
我发现的有关 Stack Overflow 的所有相关问题都修复了特定代码 sn-p 并且没有更一般地解释导致错误的原因。
这些包括
- Expected '(' for function-style cast or type construction 回答突出了代码的几个问题。究竟是哪个问题导致了错误尚不清楚。
- c++ Xcode expected '(' for function-style cast or type construction 在主函数中定义函数。这似乎是一个明显的语法问题,但我仍然不清楚为什么会产生这个特定错误。
- '(' for function-style cast or construction type Xcode error。在最后一个示例中,OP 调用函数的方式看起来与函数声明非常相似,而且它们声明了一个名称相同但签名不同的函数。根据引发错误的位置和错误消息,错误似乎与函数声明有关。
我能否得到一个文档风格的答案,用简单的英语翻译“函数风格转换”和“类型构造”的含义?编译器何时选择抛出此错误而不是其他错误?
我不想要特定于我自己的错误的答案,但根据要求,这是我的 MCVE
#include <boost/integer_traits.hpp>
class Test{
const double MAX_DEPTH_VAL = (double) boost::integer_traits<unsigned short>.const_max;
const double MIN_DEPTH_VAL = (double) boost::integer_traits<unsigned short>.const_max;
};
这个答案让我相信这种语法是可能的,https://stackoverflow.com/a/2738576/3303546
【问题讨论】:
-
我该如何改进这个问题?
-
显示代码。只是产生错误信息的代码...
-
该错误表明编译器认为您正在编写函数样式转换,即类似于
T(x),其中T是一个类型,x是一个对象。但是,它没有找到左括号。代码很可能使用您认为类型是值的类型。顺便说一句,这不是异常,而是编译时错误。 -
我们需要更多代码。
-
.运算符不能应用于类型。您将它应用于对象。响应的重点是值不是函数而是值。您可以使用::运算符引用它们。
标签: c++