考虑这个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.hmain.cppint main()foo()
发生了同样的错误。