考虑这个C++1y代码(现场示例):
#include <iostream>
auto foo();
int main() {
std::cout << foo(); // ERROR!
}
auto foo() {
return 1234;
}
编译器(GCC 4.8.1)慷慨地抛出了这个错误:
main.cpp:在函数“int main()”中:
main.cpp:8:18:错误:在扣除“auto”之前使用“auto foo()”<br> std::cout << foo();
^
我如何foo()
在这里提前声明?或者更恰当地说,是否可以前向声明foo()
?
我还尝试编译我试图在文件中声明foo()
的代码,就像上面在.h
文件中定义的那样,在我的文件中包含和对 的调用,并构建它们。foo()
.cpp
.h
main.cpp
int main()
foo()
发生了同样的错误。