以下是语言新手的常见错别字,他们认为他们在定义一个对象,但实际上是在声明一个函数:
struct T
{
void foo() {}
};
int main()
{
T obj();
obj.foo();
}
GCC 4.1.2 的错误是:
In function 'int main()':
Line 9: error: request for member 'foo' in 'obj', which is of non-class type 'T ()()'
compilation terminated due to -Wfatal-errors.
为什么报文中的类型是T()()
?我期望 T ()
。
最佳答案
IIRC 这只是一个编译器错误。 GCC 4.4 说 T()
而 4.2 为我说 T()()
。
关于c++ - 使用意外声明为函数的对象后解释 GCC 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5259170/