我们来看看这段代码:
#include <iostream>
int foo(int i) {return i; }
int foobar(int z) {return foo(z);}
int main() {
std::cout << foobar(3) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
它用g ++ -std = c ++ 11编译好...并给出输出3.但是相同的输出由下式给出:
#include <iostream>
int foo(int i) {return i; }
int foobar(int z) { foo(z);}
int main() {
std::cout << foobar(3) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
它编译没有问题,但显然foobar错过了关键字返回.这是gcc 4.8.3中的错误还是我不知道某些c ++ 11原则?(在Fedora 20上运行)