在 GCC 4.6 中试过这个,它编译和链接,但在 MacOS 上的运行时给出了“总线错误”消息。 VS2010 甚至不编译它。
但问题是,这真的应该在标准 C++0x 中工作吗?
#include <cstdio>
int (*main)()=[]()->int{printf("HEY!\n");return 0;};
是的,它试图做的是将“main”定义为 lambda 函数。
最佳答案
这不是有效的 C++ 程序,因为符号 main
未定义为函数,而是指向函数的指针。这就是您遇到段错误的原因——运行时正在尝试执行指针。
关于c++ - 这是正确的 C++0x 代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583447/