我只花了 3 个小时,可能更多,试图找到一个错误、段错误或 bad_allow,这取决于我修改代码的方式,以便了解什么对象在弄乱堆栈或内存:我把所有的对象都怀疑了。 ..我屠杀了班级...(尽管如此,事实证明这很好,因为这些班级最终发现自己毫无用处:-))...
但是,实际上,真正的错误很简单:
我没有在应该返回值的函数中编写 return 语句(在我的例子中,我需要返回 a std::vector<boost::any>
)。
我认为没有它就无法编译gcc (4.6.3) 。当我想起ms visual 2010也发生了类似的事情时,我感到更加陌生。
所以现在我想知道不写退货声明是否合法?在这种情况下会发生什么?
是否与 main 可以具有返回值的事实有关?还是我应该考虑去gcc 4.7?